gpt4 book ai didi

python - Django 外键创建

转载 作者:行者123 更新时间:2023-12-01 01:35:22 25 4
gpt4 key购买 nike

我想为UserProfile模型分配多个Region,该怎么做?

代码

class Region(models.Model):
name = models.CharField(max_length=30)
created_at = models.DateTimeField(auto_now=True)

class UserProfile(models.Model):

user = models.OneToOneField(

region = models.ForeignKey(Region, on_delete=models.CASCADE, null=True, blank=True)

最佳答案

您描述的关系不是一个ForeignKey,这意味着UserProfile有(最多)一个> 相关地区,但是 ManyToManyField [Django-doc] .

因此,ManyToManyField 意味着一个区域可以与零个、一个或多个 UserProfile 相关,并且可以与一个 UserProfile 相关零个、一个或多个Region

因此,您可以将模型更改为:

class Region(models.Model):
name = models.CharField(max_length=30)
created_at = models.DateTimeField(auto_now=True)

class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
<b>regions</b> = models.<b>ManyToManyField(Region)</b>

在关系数据库中,这是通过向 RegionUserProfile 添加一个带有 ForeignKey 的额外(隐藏)表来实现的。但 Django ORM 以“透明”的方式工作,因此隐藏了实现细节。

请参阅documentation有关如何“填充”此类关系的更多信息。

关于python - Django 外键创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52440041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com