【问题标题】:In what model should I add the ManyToManyField?我应该在什么模型中添加 ManyToManyField?
【发布时间】:2013-09-12 20:36:32
【问题描述】:

我阅读了documentation about many-to-many relationshipsexamples。我找不到关于放置 ManyToManyField 的位置的提示。在我的例子中,我有一个扩展的用户模型 Client 和一个模型 Pizza。每个客户都可以将一个或多个比萨标记为最爱。这是我的两个模型:

from django.db import models
from django.contrib.auth.models import User

class Client(models.Model):
    user = models.OneToOneField(User)
    #? favourite_pizza = models.ManyToManyField()

class Pizza(models.Model):
    name = models.CharField(max_length=255)
    #? favourite_pizza = models.ManyToManyField()

我应该在什么模型中添加 ManyToManyField?这有关系吗?

PS 重要的信息是客户有多少最喜欢的比萨饼(以及哪些)。有多少客户将披萨标记为最爱(以及谁)并不重要。因此,我会选择将 ManyToManyField 放在 Client 类中。

【问题讨论】:

  • 没关系。两种方式都可以查询。我会把它放在Client 作为个人喜好(我觉得这样更具可读性)。但没有对错之分。
  • 如果您能再次说明这一点作为答案,那就太好了! :)

标签: django django-models


【解决方案1】:

来自 Django documentation

通常,ManyToManyField 实例应该放在要在表单上编辑的对象中。

【讨论】:

    【解决方案2】:

    技术上没关系。问题是您将从哪个模型端查询数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多