Python Django Admin中的过滤器内联字段
我有以下型号:Python Django Admin中的过滤器内联字段,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我有以下型号: class Provider(models.Model): name = models.CharField() ... class Article(models.Model): provider = models.ManyToManyField(Provider) ... class Invoice(models.Model): provider = models.ForeignKey(Provider) ... class
class Provider(models.Model):
name = models.CharField()
...
class Article(models.Model):
provider = models.ManyToManyField(Provider)
...
class Invoice(models.Model):
provider = models.ForeignKey(Provider)
...
class ArticleInvoice(models.Model):
article = models.ForeignKey(Article)
invoice = models.ForeignKey(Invoice)
... #qty, status, etc
我的管理员看起来像:
class ArticleInvoiceInline(admin.TabularInline):
model = ArticleInvoice
class InvoiceAdmin(models.Model):
inlines = [ArticleInvoiceInline]
admin.site.register(Invoice, InvoiceAdmin)
问题是:
创建发票时我必须选择一个提供者,然后添加一些物品发票,该物品发票有一个提供者的物品,当我为物品发票选择物品时,它会显示所有物品
我想应用一个过滤器,这样我只能在InvoiceAdmin中创建Article Invoices,其中Articles与Invoice具有相同的提供者。您需要覆盖表单并将逻辑放入新表单中。ModelForm,这里有很多关于如何做到这一点的例子。