我有一个类似于这个的模型:
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上设置值”错误。如果我排除目标字段,它可以正常工作。
你能建议任何解决方法吗?
答案 0 :(得分:0)
您可以使用内联。问题是Django无法为您创建关系,因为必须在连接表(您的“直通”模型)上设置其他字段。请尝试以下方法:
class CInlineAdmin(admin.TabularInline):
model = C
extra = 1
class BAdmin(admin.ModelAdmin):
inlines = [CInlineAdmin,]
答案 1 :(得分:0)
如上所述,(extra fields)
中有Class C
。 django如何填充这些额外的字段,如果使用给定的A
,你想要创建更多的B。
您应该为C
创建一个管理员,您可以在其中将每个A
和B
添加到给定的C