Django UpdateView中同时包含表单和内联表单

问题描述

我有以下型号:

class Product(models.Model):
    name = models.CharField(max_length=100)

class ProductList(models.Model):
    name = models.CharField(max_length=100)
    users = models.ManyToManyField(User)
    products = models.ManyToManyField(Product,through='ProductAssignment')

class ProductAssignment(models.Model):
    count = models.PositiveIntegerField()
    product_list = models.ForeignKey(ProductList,on_delete=models.CASCADE)
    product = models.ForeignKey(Product,on_delete=models.CASCADE)

我为此创建了一个管理页面

class ProductAssignmentInlineAdmin(admin.TabularInline):
    model = ProductAssignment
    fields = ('count','product')
    extra = 2

class ProductListAdmin(admin.ModelAdmin):
    model = ProductList
    inlines = (ProductAssignmentInlineAdmin,)

admin.site.register(ProductList,ProductListAdmin)

现在,我要允许用户以相同方式编辑ProductList 。因此,我创建了一个UpdateView

class ProductListUpdate(LoginrequiredMixin,UpdateView):
    model = ProductList
    fields = '__all__'

,但仅显示ProductList的字段,而不显示m2m值。我已经用form_class替换了字段:

ProductAssignmentForm = inlineformset_factory(ProductList,ProductAssignment,fields=('count','product'),extra=2)


class ProductListUpdate(LoginrequiredMixin,UpdateView):
    model = ProductList
    form_class = ProductAssignmentForm

这仅显示表单的m2m部分。

如何显示这两个属性(ProductAssignment模型中的ProductList属性和m2m内联属性)?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...