繁体   English   中英

ManyToMany模型关系Django

[英]ManyToMany models relationship Django

我有两个模型:

class University(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=50, null=True, blank=True)
    city = models.CharField(max_length=30, null=True, blank=True)
    country = CountryField(null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    modified_at = models.DateTimeField(auto_now=True)
    departments = models.ManyToManyField(Department)


class Department(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=50, null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    modified_at = models.DateTimeField(auto_now=True)

我想University有很多Departments ,反之亦然,这很好。 但是我也想为一所大学单独存储更多的系。

例如:

University1有Department1和Department2。

University2有Department1。

我希望这些系分别为每所大学存储。 现在,当我更新Department1时,当然拥有该学校的每所大学都会发生变化。 我不要 我想更新Department1,但只更新University1记录。 University2中的Department1不应更新。

我以为中间model添加through选项无济于事。 最好的解决方案是什么?

对于您问题的第一部分

But I also want to store more departments individually for one university.
  • 您可以创建部门并将其添加到希望与之建立关系的大学中。

对于您问题的第二部分

我想更新Department1,但只更新University1记录。 University2中的Department1不应更新

  • 您应该添加表格。 贯通表定义了两个模型之间的关系,其目的是存储每种特定关系所独有的内容。

因此,如果要为所有大学更新部门1,则需要更新部门1的实例。

如果只想用部门1和大学1之间的唯一内容更新部门1,则将在两个模型之间的穿透表中使用。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM