Ошибка Django при доступе к много-ко-многим через поле неуправляемой модели
Я получаю эту странную ошибку, с которой я не могу разобраться самостоятельно:
'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'
Релевантными частями кода являются следующие:
models.py:
class Section(models.Model):
type = models.IntegerField(blank=True, null=True)
child=models.ManyToManyField(
'self',
through='SectionParent',
through_fields = ('parent_section_id', 'section_id'),
)
class Meta:
managed = False
db_table = 'section'
class SectionParent(models.Model):
section = models.ForeignKey(Section, on_delete=models.CASCADE, related_name="m2m_child")
parent_section = models.ForeignKey(Section, on_delete=models.CASCADE, related_name="m2m_parent")
class Meta:
managed = False
db_table = 'section_parent'
views.py:
def navigation(request, section_id=None):
# Load species if no id is provided
if not section_id:
sections = Section.objects.using('app-db').filter(type=SectionType.speciesCategory.value[0]).first()
# Load children of current section
else:
sections = Section.objects.using('app-db').filter(id = section_id).first()
print(sections.child()) <-------------- ERROR HERE
return HttpResponse("test")
Я пытался модифицировать models.py много раз, включая добавление related_name, замену 'self' на 'Section' и другие вещи, изменение имени отношения (child), но ничего не помогает. Я думаю, что это может быть связано с тем, что модель работает над существующей базой данных (поэтому managed = false), так как я никогда не получал такой ошибки с включенной миграцией.