从Admin表单中为模型编辑manytomany字段

时间:2014-01-06 11:39:01

标签: django django-admin

我有以下模型

class Product(models.Model):
...

class ProductQuantity(models.Model):
    product = models.ForeignKey('Product')
    invoice = models.ForeignKey('Invoice')
    quantity = models.IntegerField()

class Invoice(models.Model):
    ...
    products = models.ManyToManyField(Product, through=ProductQuantity)

在django admin中我想更改数量而不是打开新对话框,这基本上是管理员的行为方式,而是选择其中一个,如果有的话,或者在那里输入并直接从该窗口更改值。

1 个答案:

答案 0 :(得分:1)

您可以使用inline

class ProductQuantityInline(admin.StackedInline):
    model = ProductQuantity

class InvoiceAdmin(admin.ModelAdmin):
    inlines = [ProductQuantityInline]

这样,您可以直接在ProductQuantity管理页面上修改Invoice,而无需任何额外的对话框。