def serialize (self) что он делает в моделях django - PullRequest
0 голосов
/ 03 августа 2020

так что я работал над проектом, вы должны знать, что я только что начал и пытался выполнить вход / выход из электронных писем и прочего, и я увидел, что это может кто-нибудь помочь мне узнать, что делает здесь эта def serialize.

class Email(models.Model):
user = models.ForeignKey("User", on_delete=models.CASCADE, related_name="emails")
sender = models.ForeignKey("User", on_delete=models.PROTECT, related_name="emails_sent")
recipients = models.ManyToManyField("User", related_name="emails_received")
subject = models.CharField(max_length=255)
body = models.TextField(blank=True)
timestamp = models.DateTimeField(auto_now_add=True)
read = models.BooleanField(default=False)
archived = models.BooleanField(default=False)

def serialize(self):
    return {
        "id": self.id,
        "sender": self.sender.email,
        "recipients": [user.email for user in self.recipients.all()],
        "subject": self.subject,
        "body": self.body,
        "timestamp": self.timestamp.strftime("%b %-d %Y, %-I:%M %p"),
        "read": self.read,
        "archived": self.archived
    }

я не знаю, что эта сериализация делает в этом классе, может кто-нибудь мне помочь

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Этот метод serialize просто переводит модель в другой формат для взаимодействия. В вашем случае он переводит объект Email в формат dictionary.

Этот метод не является встроенным в его собственный метод, вы можете использовать собственный метод в зависимости от вашего варианта использования.

Более того , имя serialize также не фиксировано, например, self вы можете использовать любое имя по своему усмотрению. django также имеет собственный serializer проверьте здесь, чтобы узнать о django serializers https://docs.djangoproject.com/en/3.0/topics/serialization/

0 голосов
/ 03 августа 2020

Это собственный метод модели, разработанный одним из ваших коллег для получения словаря из значений экземпляра.

https://docs.djangoproject.com/en/3.0/topics/db/models/#model -методы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...