Django 如何处理modelForms中的多对多关系
我有一个类似的模型:Django 如何处理modelForms中的多对多关系,django,Django,我有一个类似的模型: class A(models.Model): name = models.CharField(primary_key=True) class B(models.Model): (morefields) target = models.ManyToManyField(A,through='C') class C(models.Model): a_key = models.Foreig
class A(models.Model):
name = models.CharField(primary_key=True)
class B(models.Model):
(morefields)
target = models.ManyToManyField(A,through='C')
class C(models.Model):
a_key = models.ForeignKey(A)
b_key = models.ForeignKey(B)
(extra fields)
我正在创建一个表单以使用modelForm编辑B项。但是,我得到“无法在指定中间模型的ManyToManyField上设置值”错误。如果排除目标字段,则效果良好
您能建议解决这个问题的方法吗?您可以使用内联线。问题是Django无法为您创建关系,因为必须在联接表(您的“through”模型)上设置其他字段。请尝试以下操作:
class CInlineAdmin(admin.TabularInline):
model = C
extra = 1
class BAdmin(admin.ModelAdmin):
inlines = [CInlineAdmin,]
通过您自己的上述提及,您在
C类中有(额外字段)
。如果通过使用给定的A
,您希望创建更多的B,那么django应该如何填充这些额外字段
您可能应该为C
创建一个管理员,在中您可以将每个A
和B
添加到给定的C