首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让每个用户都有一个附加的模型,并且该模型与项目具有多对一关系

让每个用户都有一个附加的模型,并且该模型与项目具有多对一关系
EN

Stack Overflow用户
提问于 2021-05-12 23:11:45
回答 2查看 26关注 0票数 0

我正在尝试创建一个Django应用程序,其中每个用户都附加了一个模型(植物列表),该模型由单个植物组成。我已经知道我可以使用外键通过多对一关系将植物连接到植物列表,如下所示:

代码语言:javascript
运行
复制
class PlantList(models.Model):
    plant_list_id = models.AutoField(primary_key=True)

class Plant(models.Model):
    plantlist = models.ForeignKey(PlantList, on_delete = models.CASCADE)
    name = models.CharField(max_length = 20)
    wateringInterval = models.PositiveSmallIntegerField()

但是,我希望每个用户都有一个植物列表,可以根据他们添加到列表中的植物为每个用户显示唯一的植物列表。我如何让每个用户都有一个植物列表?

我试着把它放在注册表中,但我不知道怎么做,我希望每个plantlist都有一个唯一的ID,这样我就可以更容易地向其中添加植物。

代码语言:javascript
运行
复制
class AddNewPlant(forms.Form):
    name = forms.CharField(label='Name',max_length = 20)
    wateringInterval = forms.IntegerField(label='Watering Interval')
EN

回答 2

Stack Overflow用户

发布于 2021-05-12 23:21:51

问题是,您不需要模型PlantList

相反,您应该做的是:将ForeignKey设置为Plant Model中的User Model,并在该foreign_key中设置related_name='plants'

要访问用户模型,请使用:

代码语言:javascript
运行
复制
from django.contrib.auth import get_user_model

代码示例:

代码语言:javascript
运行
复制
class Plant(models.Model):
    user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='plants')
    name = models.CharField(max_length = 20)
    wateringInterval = models.PositiveSmallIntegerField()

然后,您可以使用以下命令访问用户的所有工厂:

代码语言:javascript
运行
复制
first_user = get_user_model().objects.first().plants
票数 0
EN

Stack Overflow用户

发布于 2021-05-12 23:32:39

试试这个:

代码语言:javascript
运行
复制
class User(models.Model):
     plant_list = models.ForeignKey(PlantList, on_delete=models.CASCADE)

这是用于连接plant_list和用户的。此外,您还需要更改plant和plant_list之间的关系,以便用户也可以拥有相同的植物,如下所示:

代码语言:javascript
运行
复制
class Plant(models.Model):
     plantlist = models.ManyToManyField(PlantList)

这样一来,不同的用户可以在他们的plant_list上拥有相同的plant_list,而每个用户只有一个plants。

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

https://stackoverflow.com/questions/67506376

复制
相关文章

相似问题

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