我正在开发一种功能,以限制博客对给定用户列表(博客查看者)的可见性。我想使用电子邮件地址添加查看器,因此如果该电子邮件地址尚不存在用户,则会向用户发送邀请以创建帐户。
所以在BlogViewer中我有一些电子邮件地址,其中一些存在于我的用户模型中,有些则没有。如何将BlogViewer模型链接到我的用户模型?我应该将BlogViewer分成两个模型,一个是现有用户,所以我可以使用ForeignKey,另一个使用不存在的用户?
def Blog(models.Model):
creator = models.ForeignKey(User)
title = models.CharField()
description = models.TextField()
viewers = models.ManyToManyField(BlogViewer)
def BlogViewerr(models.Model):
email= models.EmailField()
#Part of my User model
def User(models.Model):
email = models.EmailField()
username = models.CharField()
...
谢谢!
答案 0 :(得分:0)
我设法使用可以为空的外键和设计模型来解决这个问题:
def Blog(models.Model):
title = models.CharField()
...
viewers = models.ManyToManyField(UserModel, through='BlogViewer')
def BlogViewer(models.Model):
email = models.EmailField()
user = models.ForeignKey(UserModel, null=True)
blog = models.ForeignKey(Blog)
如果存在具有给定电子邮件地址的用户,则更新用户字段,否则保留为空。如果用户不存在,我仍然可以使用电子邮件地址向用户发送邀请加入的电子邮件。