如下 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,这个怎么写啊,有点懵逼
1
hiths 2018-09-21 16:17:43 +08:00
manytomany 应该可以的
|
4
wuyifar 2018-09-21 16:28:05 +08:00
为 UserProfile 关联多个 region 的意思是, 一条用户信息可以包含多个用户信息吗, 如果是的话,直接将外键设置在 Region 下 userprofile= models.ForeignKey(UserProfile, on_delete=models.CASCADE, null=True, blank=True) 这样就是一个一对多的关系了。
|
6
welkinzh 2018-09-21 16:59:18 +08:00
四楼的方法不能用吗。。。那你可以在 UserProfile 下添加 region1, region2, region3... 不
|
7
uhayate 2018-09-21 17:06:26 +08:00
JSONField 了解一下,爱有几个 region 有几个。
|
8
SmartKeyerror 2018-09-22 00:19:26 +08:00 via Android
一句话: 一对多的关联关系,关系保存在"多"的那张表中。ForeignKey 其实在数据库中为一个 id,如果是 user 有多个 region,那么 region 就是"多"关系。数据库的结构就是这样的:
user: id username ... 1 张三 region: id name ... user_id 1 中国 1 2 广东 1 这样一来张三就有多个区域了。 |