【发布时间】:2021-04-23 18:51:54
【问题描述】:
我正在努力在 Django(使用 PostgreSQL)上设计我的模型。
目标是创建一个组系统,用户可以在其中排列项目。一个项目在我的数据库中必须是唯一的。但是我不希望项目在我的数据库中分组。我想要一个属于用户并且可以分组排序的项目列表。
用户拥有对象。然后他可以将它们分组。但他不需要这样做。
我创建了一个属于用户 (User) 的用户项组 (UserItemGroup)。然后,我创建了一个项目模型 (UserItem)。该模型表示用户可以分组的项目。项目可以同时属于多个组,但必须是唯一的!我在UserItem 模型中使用了2 个ForeignKey,但看起来很奇怪……见下文:
class UserItemGroup(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False, null=False)
slug = models.CharField(max_length=200, blank=False, null=False)
class UserItem(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
group = models.ForeignKey(UserItemGroup, on_delete=models.CASCADE)
项目可以这样排列:
user_x
------group_a
------------item_1
------------item_2
------------item_3
------group_b
------------item_1
------------item_4
希望我很清楚,在此先感谢您的帮助。
【问题讨论】:
标签: python sql django database