Как я могу включить поле ManyToMany в django наборы полей администратора? - PullRequest
0 голосов
/ 21 января 2020

У меня есть две модели:

Python 3.7

class ClassOne(models.Model):
     name = models.CharField(max_length=10, default='')

class ClassTwo(models.Model):
     name = models.CharField(max_length=20, default='')
     class_ones = models.ManyToManyField(ClassOne)

Теперь я хотел бы показать ClassOne в django -админе со всеми перечисленными ClassTwo. Я уже пытался создать Tabular (admin.TabularInline) или создать метод в ClassOne следующим образом:

def get_class_twos(self):
     return self.classtwo_set.all()

и включить этот метод в наборы полей, но это тоже не сработало. Ни один из них не внес в список набора полей classtwo_set.all() или classtwo_set.

1 Ответ

1 голос
/ 21 января 2020

Сначала вы должны определить TabularInline:

class ClassOneInLine(admin.TabularInline):
    model = ClassTwo.classone.through
    form = ClassOneForm

Затем добавьте его в класс администратора для ClassTwo:

class AuthorAdmin(admin.ModelAdmin):
    inlines = (ClassOneInLine,)

И не забудьте зарегистрировать администратора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...