Ich habe zwei Modelle in meinem Django-Projekt, die Followup und User sind, jedem Followup ist eine Benutzerinstanz zugeordnet [actor field]. Was passiert, ist, wenn ich diesen Code ausführen ich den Primärschlüssel für die Akteure von Standard erhalte ich die first_name Feld erhalten müssen, die für alle Zeilen in Benutzermodell ist aus followups geholtAbrufen eines bestimmten Werts für verschachteltes Objekt in einem Abfrage-Set zum Serialisieren
result = Followup.objects.filter(lead_name = lead).only('lead_name','followup','comments','actor')
plan = PlanType.objects.filter(lead_id = lead)
response["followup"] = serializers.serialize('json', result)
Followup Modell
class Followup(TimeStampedModel):
lead_name = models.ForeignKey(
LeadInfo,
on_delete=models.CASCADE,
null=True
)
followup = models.DateField(
blank=False,
verbose_name='Follow up date'
)
comments = models.TextField(blank=True, verbose_name='Comments')
actor = models.ForeignKey(
User,
blank=True,
limit_choices_to={'is_staff': True},
on_delete=models.CASCADE,
null=True,
verbose_name='Actor'
)
class Meta:
verbose_name = 'followup'
verbose_name_plural = 'followups'
def __str__(self):
return '{}'.format(self.lead_name)
User-Modell
class User(AbstractBaseUser, PermissionsMixin):
first_name = models.CharField(_('First Name'), max_length=120, blank=True)
last_name = models.CharField(_('Last Name'), max_length=120, blank=True)
email = models.EmailField(_('email address'), unique=True, db_index=True)
is_staff = models.BooleanField(_('staff status'), default=False,
help_text='Designates whether the user can log into this admin site.')
is_active = models.BooleanField('active', default=True,
help_text='Designates whether this user should be treated as '
'active. Unselect this instead of deleting accounts.')
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
USERNAME_FIELD = 'email'
objects = UserManager()
class Meta:
verbose_name = _('user')
verbose_name_plural = _('users')
ordering = ('-date_joined',)
def __str__(self):
return str(self.email)
def get_full_name(self):
"""
Returns the first_name plus the last_name, with a space in between.
"""
full_name = '{} {}'.format(self.first_name, self.last_name)
return full_name.strip()
def get_short_name(self):
"Returns the short name for the user."
return self.first_name.strip()
https://stackoverflow.com/a/17032984/2282638 :) –
Danke @SandeepBalagopal. Es scheint, dass die eingebauten Serializer des Djangos das Parsen über verwandte Felder nicht unterstützen. Die Antwort wurde aktualisiert. – rajkris
https://docs.djangoproject.com/en/1.10/topics/serialization/#natural-keys –