
如下 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 这样一来张三就有多个区域了。 |