Как сохранить пользователя как атрибут модели Django
Я пытаюсь создать функцию Mail как часть моего сайта, я хотел бы сохранить получающего User
вместо имени пользователя получающего пользователя в receiver
части класса Mail
, так что мне не нужно фильтровать пользователя. Вот что я сделал:
class Mail(models.Model):
sender = models.ForeignKey(User, on_delete=models.CASCADE)
receiver = models.ForeignKey(User, on_delete=models.CASCADE, choices=[(u.username, u) for u in User.objects.all()])
title = models.CharField(max_length=50)
content = models.TextField()
django выдает мне эту ошибку
ERRORS:
mail.Mail.sender: (fields.E304) Reverse accessor for 'mail.Mail.sender' clashes with reverse accessor for 'mail.Mail.receiver'.
HINT: Add or change a related_name argument to the definition for 'mail.Mail.sender' or 'mail.Mail.receiver'.
mail.Mail.receiver: (fields.E304) Reverse accessor for 'mail.Mail.receiver' clashes with reverse accessor for 'mail.Mail.sender'.
HINT: Add or change a related_name argument to the definition for 'mail.Mail.receiver' or 'mail.Mail.sender'.
Вам необходимо добавить атрибут related_name. Для получения дополнительной информации прочитайте эту статью: Для чего используется related_name?
class Mail(models.Model):
sender = models.ForeignKey(User, on_delete=models.CASCADE, related_name='sender')
receiver = models.ForeignKey(User, on_delete=models.CASCADE, choices=[(u.username, u) for u in User.objects.all()], related_name='receiver')
title = models.CharField(max_length=50)
content = models.TextField()