Если предположить, что у меня есть:ManyToManyFields как IntegerFields в Django интерфейс администратора
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)
Как я мог отрендерить ModelForm
для Basket
модели с полем для каждого ProductQuantity
из в Basket
, просто чтобы быть в состоянии изменить его атрибут quantity
?
Есть ли виджет, который я мог бы использовать для этого?
Если бы я был в состоянии сделать такую вещь, с такой ModelForm, я мог использовать этот ModelForm
в admin.ModelAdmin
в качестве альтернативного атрибута form
иметь такое же поведение в интерфейсе администратора?
Edit:
@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,]
Возможный дубликат [Доступ ко многим полям «через» в формах] (http://stackoverflow.com/questions/11021242/accessing-many-to-many-through-relation-fields-in- FormSets) –