我有两个模型,一个是用户模型,另一个是联系人模型。
联系人模型如下:
class Contact(models.Model):
pass
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, null=True, on_delete=models.CASCADE, verbose_name=_('User'), related_name="user")
contact = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, null=True, on_delete=models.CASCADE, verbose_name=_('Contact'), related_name="contact")
created_at = models.DateTimeField(auto_now=False, auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True, auto_now_add=False)
is_contact = models.BooleanField(default=False)
基本上,该操作是为用户创建联系人。一种朋友要求并接受简单的模型。因此,已登录的用户(request.user)可以是contact.user或contact.contact。
和设置。AUTH_USER_MODEL是CustomUser模型:
class CustomUser(AbstractUser):
pass
email = models.EmailField(unique=True)
first_name = models.CharField(max_length=20, default="", blank=True)
last_name = models.CharField(max_length=20, default="", blank=True)
我该如何建立关系,可以通过以下方式与用户取得联系:
// get user contacts user=CustomUser.objects.get(pk=1)
user.contacts.objects.all()
答案 0 :(得分:0)
通常,您使用 related_name
关键字查询反向关系,默认情况下,该关键字为 contact_set
:>
user.contact_set.all()
如果要更改此反向关系的名称,则需要在 Contact
模型中使用 related_name
:< / p>
class Contact(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name="contacts", ...)
user.contacts.all()