在Django Admin View中基于外键进行动态过滤

时间:2019-08-15 21:16:33

标签: django python-3.x django-models django-admin django-admin-filters

有关管理员视图编辑模型的问题。 我不知道如何根据当前编辑的模型的外键对TabularInLine模型的外键进行动态过滤。

models.py:

from django.db import models

class A(models.Model):
    name = models.CharField(blank=False, max_lenght=50)

class B(models.Model):
    fkA = models.ForeignKey(A, on_delete=models.CASCADE)
    name = models.CharField(blank=False, max_lenght=50)

class C(models.Model):
    fkA = models.ForeignKey(A, on_delete=models.CASCADE)
    fkB = models.ForeignKey(B, on_delete=models.CASCADE)
    name = models.CharField(blank=False, max_lenght=50)

admin.py:

from django.contrib import admin
from .models import A, B, C

class BInline(admin.TabularInLine):
    model = B

class CInline(admin.TabularInLine):
    model = C

@admin.register(A)
class AAdmin(admin.ModelAdmin):
    inlines = [BInline, CInline]

admin.site.register(B)
admin.site.register(C)

问题是,我希望在A的管理员编辑视图中,在C的内联部分中包含B的下拉列表,以仅列出与通过外键与当前编辑的A模型关联的模型。因为它列出了数据库中所有可用的模型。

我希望我的解释很清楚,希望有人能帮助我。谢谢!

0 个答案:

没有答案