Повторяющиеся поля при использовании ManyToManyField - PullRequest
0 голосов
/ 24 января 2019

Я обновил 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,)

Рад заполнить все пробелы и заранее спасибо.

1 Ответ

0 голосов
/ 24 февраля 2019

Кажется, что 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)
...