Django tabularInline 'categories.Category_children_ids' имеет более одного ForeignKey к 'categories.Category'. Вы должны указать атрибут 'fk_name'.

Я хочу создать вложенные категории, модель работает нормально.

class Category(models.Model):
    category_name = models.CharField(max_length=100)
    children_ids = models.ManyToManyField(
        "Category", blank=True, related_name="categories"
    )
    ...etc

но, когда я добавляю inline для панели администратора

class ChildrensInline(admin.TabularInline):
    model = Category.children_ids.through

компилятор выдает ошибку: 'categories.Category_children_ids' имеет более одного ForeignKey к 'categories.Category'. Вы должны указать атрибут 'fk_name'.

Я также пробовал fk_name='categories', и название колонок в таблице Category_children_ids, но это не работает

Установите fk_name='from_category или fk_name='to_category', в зависимости от ваших потребностей:

class ChildrensInline(admin.TabularInline):
    model = Category.children_ids.through
    fk_name='from_category' # or: 'to_category'

Обычно, быстрый способ выяснить такие вещи - это (временно) поместить простой print(model.__dict__) практически в любом месте вашего кода, например, здесь, сразу после второй строки. Тогда все поля model будут показаны в консольном выводе.

Вернуться на верх