Django 在多个模型字段上组合唯一

2024-04-25

假设我有一个社交网络帖子、用户和点赞的模型:

class Post(models.Model):
    submitter = models.ForeignKey(User, null=False, default=None)
    content = models.CharField()
    date = models.DateField()

    with_likes = PostLikeCountManager()
    objects = models.Manager()

class Like(models.Model):
    user = models.ForeignKey(User)
    post = models.ForeignKey(Post)
    time = models.DateTimeField(auto_now_add=True)

想一想会很有帮助Post模型代表一个Facebook邮政。现在,我想限制每个用户的每个帖子一个。我该如何实现这一目标?一种方法是在 (user, post) 的属性Like班级。我不知道如何在 Django 中实现这一点。另一种是使用unique=True同时作用于两个属性。那可能吗?

Thanks.


是的,使用唯一的_在一起 https://docs.djangoproject.com/en/2.2/ref/models/options/#unique-together:

class Like(models.Model):
    user = models.ForeignKey(User)
    post = models.ForeignKey(Post)
    time = models.DateTimeField(auto_now_add=True)

    class Meta:
        unique_together = ('user', 'post')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 在多个模型字段上组合唯一 的相关文章

随机推荐