0

我正在开发一种功能,以将博客可见性限制为给定的用户列表(博客查看者)。我想使用电子邮件地址添加查看器,因此如果用户不存在此电子邮件地址,则会向用户发送邀请以创建帐户。

因此,在 BlogViewer 中,我有一些电子邮件地址,其中一些存在于我的用户模型中,而另一些则不存在。如何将我的 BlogViewer 模型链接到我的 Users 模型?我是否应该将我的 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()
    ...

谢谢!

4

1 回答 1

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)

如果存在具有给定电子邮件地址的用户,则更新用户字段,否则将其保留为空。如果用户不存在,我仍然可以使用电子邮件地址向用户发送电子邮件,邀请加入。

于 2013-05-09T08:06:50.623 回答