Добавление одного поля в группу django admin - PullRequest
0 голосов
/ 23 марта 2020

Я хотел бы знать, как добавить одно поле в группу полей в наборе полей в DjangoAdmin. Я получил это:

class SecretarioAdmin(UserAdmin):
    model=Secretario

    def get_fieldsets(self, request, obj=None):
        fieldsets = list(super(UserAdmin, self).get_fieldsets(request, obj))
        # update the `fieldsets` with your specific fields
        fieldsets.append(('Administrar', {'fields': ('administrar')}))
        return fieldsets

Это моя модель:

class Secretario(Usuario):
    administrar = models.OneToOneField(CentroEducativo, on_delete=models.CASCADE, null=True)

И это ошибка, которую я получаю:

Unknown field(s) (i, a, r, s, m, d, t, n) specified for Secretario. Check fields/fieldsets/exclude attributes of class SecretarioAdmin.

1 Ответ

1 голос
/ 23 марта 2020

Я думаю, что добавление запятой (,) после 'administrar' должно решить вашу ошибку. Поскольку ошибка рассматривает administrar как кортеж символов, а не как кортеж с одним элементом.

Правильный код должен выглядеть следующим образом:

class SecretarioAdmin(UserAdmin):
    model=Secretario

    def get_fieldsets(self, request, obj=None):
        fieldsets = list(super(UserAdmin, self).get_fieldsets(request, obj))
        # update the `fieldsets` with your specific fields
        fieldsets.append(('Administrar', {'fields': ('administrar', )}))
        return fieldsets

Причина:

В python, одна строка в () является строкой, а не кортежем с одним элементом.

t = ('sample')

type (t)

str

t = ('sample',)

type (t)

кортеж

...