gpt4 book ai didi

python - Django 如何使用 ManyRelatedManager

转载 作者:太空狗 更新时间:2023-10-30 01:17:16 31 4
gpt4 key购买 nike

我有 2 个不同的应用程序,没有特别的理由相互交谈。这意味着我不想在任何一个应用程序中导入任何一个名称。所有的工作都应该在胶水应用程序中。

我想编写一个胶水应用程序,通过 ManyToManyField 连接到特定模型,例如:

应用内客户,

class Customer(models.Model):
...

在比萨应用中,

class Pizza(models.Model):
...

然后我想编写这样的披萨销售应用程序:

class PizzaSold(models.Model):
customer = models.ForeignKey(related_name='pizzas')
pizza = models.ForeignKey(related_name='customers')

objects = ManyRelatedManager()

这样我就可以直接从客户那里获得比萨饼

 pizza = Pizza.objects.all()[0]
for customer in pizza.customers:
#Do something cool

以及这款新应用中披萨店的顾客。

我该怎么做?

最佳答案

如果你使用 ManyToManyField 会怎样为客户模型中销售的披萨建模?

class Customer(models.Model):
pizzas_bought = models.ManyToManyField(Pizza)

此外,如果您希望向客户添加额外数据 -> 披萨关系,请使用 through parameter 指定映射类:

class Customer(models.Model):
pizzas_bought = models.ManyToManyField(Pizza, through=PizzaSold)

class PizzaSold(models.Model):
customer = models.ForeignKey(Customer)
pizza = models.ForeignKey(Pizza)

同样,使用 related_name 也应该与 ManyToManyFields 一起正常工作。例如:

class Customer(models.Model):
pizzas_bought = models.ManyToManyField(related_name='pizzas')

关于python - Django 如何使用 ManyRelatedManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121787/

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