0

我是 Django 的新手,我无法理解它是如何model.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

医生有一个姓名和一份 N 个健康计划的清单。N 个医生可以拥有一个健康计划。我认为这是一个 N:N 关系,所以我使用 ManyToMany 来建立关系。'

问题是这段代码生成了 3 个表。Health_plan、Doctors_list 和 hp_id。重点是什么?我可以通过医生的 ID 来识别医生,并将其与健康计划的 ID 匹配。

a在此示例计划中,健康计划表具有b默认值和 id。Doctor将在 Health_plan 表的行id = 5上将计划标记为 1 。(1 for true, 0 for false)id = 5

我应该使用其他型号吗?提示?

4

1 回答 1

1

任何多对多关系,不仅仅是在 Django 中,都需要一个链接表。

您说“我可以通过其 id 识别医生并将其与健康计划的 id 匹配” - 嗯,这正是链接表的作用。这些数据还会去哪里?正如你所说,每个医生都有很多计划,每个计划都有很多医生。因此,由于您需要许多条目,因此无法将这些数据存储在医生一方或计划方。链接表实现了这一点,每个医生都有很多条目,每个计划有很多条目,但医生+计划的每个组合只有一个条目。

于 2013-05-02T18:34:09.313 回答