假设我有一个社交网络帖子、用户和点赞的模型:
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(使用前将#替换为@)