gpt4 book ai didi

python - Django 多对多字段

转载 作者:搜寻专家 更新时间:2023-10-30 21:39:57 25 4
gpt4 key购买 nike

我需要制作一个智能菜单,为此我需要一个 ManyToMany 关系。

我的模型是:

from django.db import models

class Health_plan(models.Model):
a = models.IntegerField ()
b = models.IntegerField ()

class Doctors_list(models.Model):

name = models.CharField(max_length=30)
hp_id = models.ManyToManyField(Health_plan)

def __unicode__(self):
return self.name

如何在数据库中建立这种关系?我正在考虑将 health_plans (a,b) 作为列,将医生作为行,用 0 和 1 来标识他们承保的 health_plans。

有人告诉我这是对 ManyToManyField 的误用,我不知道该采取什么步骤。

感谢帮助

最佳答案

health_plans 列为列的方法不一定是错误的,但它意味着您拥有固定数量的健康计划并且永远不会添加新计划。

关系数据库中多对多关系的传统做法是在中间引入一个表。该表将仅包含医生和健康计划之间的关联。

如果您有一个包含以下内容的 Doctor 表:

id    name
1 foo
2 bar

还有一个HealthPlan表:

id    model
1 a
2 b

然后您添加一个表Doctor_HealthPlan,如下所示:

doctor_id    healthplan_id
1 2
2 1
2 2

django 中的ManyToMany 字段类型会自动为你创建这个表。您的代码是正确的,但您可能应该将 hp_id 重命名为 health_plans 之类的名称,因为它是允许您访问与医生关联的健康计划列表的代理。

关于python - Django 多对多字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16360205/

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