首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django中使整行唯一

如何在Django中使整行唯一
EN

Stack Overflow用户
提问于 2019-10-09 00:32:17
回答 1查看 324关注 0票数 0

所以我有一个用户模型和一个社区模型。现在,为了检查用户是否加入了社区,我有一个UserJoinedCommunity模型。它有usercommunity字段。如下所示:

代码语言:javascript
复制
class UserJoinedCommunity(models.Model):
    """DB Model for users joined communities"""
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    community = models.ForeignKey(Community, on_delete=models.CASCADE)

    def __str__(self):
        return f"{self.user.username}|{self.community.name}"

所以我想要做的是使整个行是唯一的,这样用户就不能“多次加入社区”。因此,如果用户id是3,并且他加入了id为5的社区,那么它将创建一个记录例如{user: 3, community: 5}。我希望它是唯一的,这样它就不会被再次创建。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-09 00:59:11

你要找的是unique_together

代码语言:javascript
复制
class UserJoinedCommunity(models.Model):
    """DB Model for users joined communities"""
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    community = models.ForeignKey(Community, on_delete=models.CASCADE)

    class Meta:
        unique_together = ['user', 'community']

    def __str__(self):
        return f"{self.user.username}|{self.community.name}"

请注意,这将在数据库中创建一个约束。这不是应用程序级别的约束。换句话说,您仍然需要自己处理IntegrityError。

More info here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58290510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档