我从Django 1.10升级到1.11,现在我以前使用的两个模型都导致错误。它们是仅有的两个带有ManyToManyField
属性的related_name
模型。我还有一个ManyToManyField
,但没有related_name
,它工作正常。
引发的错误具有误导性:
<class 'hadotcom.admin.CaseStudyAdmin'>: (admin.E012) There are duplicate field(s) in 'fieldsets[0][1]'
我发现其他SO帖子引用了该错误,并确认没有一个与我的问题匹配。
如果我将整行注释掉,它将通过检查。我尝试添加through
属性,但没有帮助。
示例代码(使用夹层):
class CaseStudyPage(Page):
industries = models.ManyToManyField("IndustryPage", blank=True, related_name="industry_set", through="CaseStudyIndustries")
class CaseStudyAdmin(HaPageAdmin):
inlines = (Foo, Bar,)
很高兴填补任何空白,在此先感谢。
答案 0 :(得分:1)
似乎ContentTypedAdmin
中的Mezzanine
在子类中添加了ManyToMany
字段两次。我还没有确切调查其发生原因。一种可能的解决方案是将ContentTypedAdmin.__init__()
的最后两行更改为:
if not hasattr(field, "translated_field") and field.name not in self.fieldsets[0][1]["fields"]:
self.fieldsets[0][1]["fields"].insert(3, field.name)