【发布时间】:2016-08-04 20:58:18
【问题描述】:
假设我有:
class Product(models.Model):
[...]
class Basket(models.Model):
content = models.ManyToManyField(Product, through="ProductQuantity")
class ProductQuantity(models.Model):
basket = models.ForeignKey(Basket)
product = models.ForeignKey(Product)
quantity = models.IntegerField(default=0)
如何为Basket 模型渲染一个ModelForm,并为Basket 的每个ProductQuantity 提供一个字段,以便能够修改其quantity 属性?
有我可以使用的小部件吗?
如果我能够用这样的 ModelForm 做这样的事情,我是否可以在 admin.ModelAdmin 中使用 ModelForm 作为替代 form 属性以在管理界面中具有相同的行为?
编辑:
@MuhammadTahir 将此帖子标记为可能与 this post 重复。
它确实帮助我更好地理解,但我仍然卡住:我无法渲染我想要渲染的字段。
到目前为止,这是我的代码:
models.py
同上。
forms.py
ProductQuantityFormSet = inlineformset_factory(Product,
basket.content.through,
fields=("quantity",))
admin.py
class ProductQuantityInline(admin.StackedInline):
model = ProductQuantity
formset = ProductQuantityFormSet()
class BasketAdmin(admin.ModelAdmin):
inline = [ProductQuantityInline,]
【问题讨论】:
标签: django django-forms manytomanyfield django-widget