Django管理界面中未显示字段

3

在 Django Admin 中不显示字段 在尝试通过 Django Admin 添加角色时,该字段未显示。

class Role(Core):
    role = models.CharField(max_length=25, unique=True, editable=False)

    def save(self, *args, **kwargs):
        self.role = self.role.lower()
        super(Role, self).save(*args, **kwargs)

    def __str__(self):
        return self.role.capitalize()

admin.site.register(Role)

class Core(models.Model):
    id = models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

在此输入图片描述


你应该在定义Role之前定义Core - Willem Van Onsem
此外,id 是由数据库提供的(它是主键),而 created_atupdated_at 是不可编辑的项目,因此这些项目也不会显示在表单中。 - Willem Van Onsem
1
你的所有字段都有 editable=False,因此如上所述,没有一个会显示出来... - Abdul Aziz Barkat
1个回答

4

id是由数据库提供的(它是主键),created_atupdated_at是不可编辑的项目,所以这些也不会在表单中显示。

这意味着只有role字段可以使用,但您将其指定为editable=False [Django-doc],因此它不会出现在创建/编辑Role对象时。

您应该删除editable=False部分:

class Role(Core):
    #                             no editable = False ↓
    role = models.CharField(max_length=25, unique=True)

    def save(self, *args, **kwargs):
        self.role = self.role.lower()
        super(Role, self).save(*args, **kwargs)

    def __str__(self):
        return self.role.capitalize()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接