这是我第一次在django中使用M2M关系。这就是我想要实现的目标。我有一个患者模型modelPatient
,可以分配给多个学生(医学生),每个学生modelStudent
可以有多个患者进行检查。为此,我决定在这里使用M2M关系。如果在这种情况下这是正确的设计决定,请告诉我。
class modelPatient(models.Model):
student = models.ManyToManyField(modelStudent,null=True,default=None,blank=True)
patient_name = models.CharField(max_length=128, unique=False)
这是学生模型
class modelStudent(models.Model):
first_name = models.CharField(max_length=128, unique=False)
现在假设我正在做这样的事情
patient = modelPatient.object.get(patient_name="John")
如何将此patient
分配给多个学生studentA
和studentB
studentA = modelStudent.objects.get(first_name="john")
studentB = modelStudent.objects.get(first_name="adam")
我想要的是patient
实例与studentA
和studentB
相关联。如果可能或我的设计决定不正确,请告诉我。
答案 0 :(得分:1)
答案可以在这里找到:how to add data into ManyToManyField?
只需将它们添加到您的关系中:
patient.student.add(studentA)
patient.student.add(studentB)
或者你可以用
在一行中添加它们patient.student.add(studentA, studentB)
有关详细信息,请参阅文档,其中提供了非常好的示例:https://docs.djangoproject.com/en/1.10/topics/db/examples/many_to_many/
另请注意,您可以从patient
对象访问student
。
答案 1 :(得分:1)
https://docs.djangoproject.com/en/1.10/topics/db/examples/many_to_many/
patient = modelPatient.object.get(patient_name="John")
studentA = modelStudent.objects.get(first_name="john")
studentB = modelStudent.objects.get(first_name="adam")
patient.student.add(studentA, studentB)
此处关于modelPatient
- model
的FYI也是多余的,patient
中的patient_name
也是多余的。您已经在Patient
模型命名空间