内联显示多对多管理员django

时间:2019-11-20 19:17:02

标签: python django django-models django-admin

我的代码的简化示例为:

在models.py中:

from django.db import models

class A(models.Model):
    ...

class C(models.Model):
    a = models.ForeignKey(A, on_delete=models.CASCADE)
    b = models.ForeignKey(B, on_delete=models.CASCADE)

class B(models.Model):
    a_fields = models.ManyToManyField(A)

然后在admin.py

@admin.register(A)
class AAdmin(admin.ModelAdmin):
    pass

class CInline(admin.TabularInline):
    model = C
    extra = 0

@admin.register(B)
class BAdmin(admin.ModelAdmin):
    inlines = (CInline,)

当我打开A实体的添加新表单时,它不会内联显示B的字段。它实际上显示了一个带有预先存在的条目的下拉框,并允许我单击“ +”以添加新的A,这是不希望的行为,而且无需首先使用内联即可发生相同的情况。预先感谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试that。 或使用 admin.ModelAdmin()并尝试filter_horizo​​ntal字段