gpt4 book ai didi

django - 如何在 Django 管理区显示多对多关系字段(如果多对多关系使用 'through' )?

转载 作者:行者123 更新时间:2023-12-04 12:49:51 27 4
gpt4 key购买 nike

我知道在管理区域中显示外键字段很容易,但是如果使用 through,我该如何显示多对多关系的字段?

模型.py:

class Pizza(models.Model):
toppings = models.ManyToManyField(Topping, through='PizzaTopping')

class Topping(models.Model):
topping = models.CharField(max_length=255)

class PizzaTopping(models.Model):
pizza = models.ForeignKey(Pizza)
topping = models.ForeignKey(Topping)

管理员.py:

class PizzaAdmin(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': ('toppings')
}),
})
)

这会产生以下错误:

<class 'pizzas.admin.PizzaAdmin'>: (admin.E013) The value of 'fieldsets[0][1]["fields"]' cannot include the many-to-many field 'toppings' because that field manually specifies a relationship model.

我想显示一个允许我选择浇头的框或列表框。

这可能吗?

谢谢

最佳答案

您可以将浇头显示为内联。

from django.contrib import admin

class ToppingInline(admin.TabularInline):
model = PizzaTopping

class Pizza(admin.ModelAdmin):
inlines = [
ToppingInline,
]
exclude = ('toppings',)

请参阅 working with many-to-many models 上的管理文档了解更多信息。

关于django - 如何在 Django 管理区显示多对多关系字段(如果多对多关系使用 'through' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40635108/

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