将单个字段添加到组 django admin

Adding a single field into group django admin

我想知道如何在 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.

我认为在 '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',)

类型(t)

tuple