Python中Django的ForeignKey问题求教

如下 model

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)

我想为 UserProfile 关联多个 region,这个怎么写啊,有点懵逼


Python中Django的ForeignKey问题求教

10 回复

manytomany 应该可以的


我无法理解你的问题

哦不对看错了。尴尬

好像没错哈哈哈就用 manytomany…

为 UserProfile 关联多个 region 的意思是, 一条用户信息可以包含多个用户信息吗, 如果是的话,直接将外键设置在 Region 下 userprofile= models.ForeignKey(UserProfile, on_delete=models.CASCADE, null=True, blank=True) 这样就是一个一对多的关系了。

, 但是暂时不能动结构,有办法可以实现我的目的吗?谢谢了

四楼的方法不能用吗。。。那你可以在 UserProfile 下添加 region1, region2, region3… 不

JSONField 了解一下,爱有几个 region 有几个。

一句话: 一对多的关联关系,关系保存在"多"的那张表中。ForeignKey 其实在数据库中为一个 id,如果是 user 有多个 region,那么 region 就是"多"关系。数据库的结构就是这样的:
user:
id username …
1 张三

region:
id name … user_id
1 中国 1
2 广东 1
这样一来张三就有多个区域了。

不能改结构的话,可以加个表吗,可以的话就加个表,手动去关联

回到顶部