为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 django、python 中更改管理字段名称

如何在 django、python 中更改管理字段名称

长风秋雁 2022-06-22 15:47:03
我在我的应用程序的 models.py 文件中添加了一个模型作者,并为作者创建了模型名称,而我在管理面板中打开它显示为作者对象(12)我该如何更改?我尝试添加 Unicodeclass Author(models.Model):     author_name=models.CharField(max_length=300)我想要管理面板中的字段名称而不是作者对象。 下面我想更改作者对象
查看完整描述

3 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

尝试这个:


class Author(models.Model):

    author_name=models.CharField(max_length=300)


    def __str__(self):

        return self.author_name

遵循@dirkgroten 所说的“养成始终为所有模型覆盖str的习惯”


您也可以list_display在您的方法中使用方法admin.py来实现类似的结果。创建一个管理类并用于list_display以表格格式呈现模型的字段


Admin.py


from app.models import Artist      #<-----Import you artist model 


@admin.register(Artist)          #<----- admin class should be just below this line

class ArtistAdmin(admin.ModelAdmin):


    list_display = ["id", "author_name"]

或者你也可以这样做:


from app.models import Artist      #<-----Import you artist model 



class ArtistAdmin(admin.ModelAdmin):

    list_display = ["id", "author_name"]


admin.site.register(Artist, ArtistAdmin)    #<----register your class also


查看完整回答
反对 回复 2022-06-22
?
largeQ

TA贡献2039条经验 获得超7个赞

您可以像这样覆盖__str__django 模型类中的方法


class Author(models.Model):

    author_name=models.CharField(max_length=300)


    def __str__(self):

        return self.author_name


查看完整回答
反对 回复 2022-06-22
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

这是像您这样的情况的覆盖__str__方法的示例。


class Language(models.Model):

    language = models.CharField(max_length=32)


    class Meta:

        app_label = "languages"

        ordering = ["-modified"]


    def __str__(self):

        return f"{self.language} (language {self.id})"


查看完整回答
反对 回复 2022-06-22
  • 3 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信