首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

更改django model admin的可编辑字段的列名

在Django的admin模块中,ModelAdmin类允许你自定义模型在管理后台的展示和行为。如果你想更改某个字段在admin中的列名,可以通过设置list_display属性和使用verbose_name或自定义方法来实现。

基础概念

  • ModelAdmin: Django admin模块中的一个类,用于定制模型的管理界面。
  • list_display: 这是一个元组或列表,定义了在admin列表页面中显示哪些字段。
  • verbose_name: 在模型字段定义中可以设置,用于提供字段的人类可读名称。

相关优势

  • 提高用户体验:通过自定义列名,可以使管理后台更加直观易懂。
  • 灵活性:可以根据不同的需求调整显示的信息,使得后台管理更加贴合实际业务流程。

类型

  • 字段级别的自定义:通过verbose_name属性。
  • 列表级别的自定义:通过list_display属性和自定义方法。

应用场景

  • 当默认的字段名称不够直观或者需要与业务逻辑更贴合时。
  • 当需要在admin列表页面显示计算字段或非模型字段时。

示例代码

假设我们有一个名为Person的模型,其中有一个字段叫做first_name,我们想在admin中将其列名改为“名字”。

代码语言:txt
复制
from django.contrib import admin
from .models import Person

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name_as_display',)  # 使用自定义方法显示列名

    def name_as_display(self, obj):
        return obj.first_name
    name_as_display.short_description = '名字'  # 设置列名显示为“名字”

admin.site.register(Person, PersonAdmin)

在这个例子中,我们定义了一个PersonAdmin类,它继承自admin.ModelAdmin。我们通过list_display属性指定了一个自定义方法name_as_display,该方法返回first_name字段的值,并通过short_description属性设置了列名。

遇到问题及解决方法

如果你在更改列名后没有看到预期的效果,可能的原因包括:

  • 缓存问题:Django admin有时会缓存显示设置,尝试清除浏览器缓存或重启Django开发服务器。
  • 代码未更新:确保你的更改已经保存并重新加载了服务器。
  • 权限问题:检查当前登录的用户是否有足够的权限查看自定义的列名。

解决方法:

  • 清除浏览器缓存。
  • 重启Django服务器。
  • 确认用户权限设置正确。

通过以上步骤,你应该能够在Django admin中成功更改字段的列名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • salesforce零基础学习(八十一)更改标准字段的label名称(Admin)

    比如picklist values的中英文,字段标题的中英文翻译等等 ?...翻译部分有一项可以设置需要翻译的类型,有时候我们需要对标准表的标准字段进行中英文翻译,但是发现里面并没有translate的地方。...比如Account的Name字段是标准的字段,label的名字为Name,中文对应为客户名。但是用户希望将Name的名称改成Account Name,将中文翻译成客户名称。...这在translate是找不到也做不到的。如果针对标准的表的字段修改相关的translate,需要使用下面的方式。...2.选择需要翻译的语言,然后找到需要修改字段翻译的object,此处选择Accounts,点击Edit ? 3.点击next后找到Name字段修改成客户名称,点击Save。

    1.8K50

    Django 3.1 官网学习路线

    您将在 Python 代码中使用此值,数据库将使用它作为列名。 可以对字段使用可选的第一个位置参数来指定我们可读的名称。它在 Django 的几个内省部分中使用,同时也用作文档。...model Choice 通过运行 makemigrations,您将告诉 Django 您对模型进行了一些更改(在这种情况下,您进行了新的更改),并且希望将更改存储为迁移。...不用担心,不必每次 Django 生成一个时都读取它们,但是如果您想手动调整 Django 的更改方式,它们是可人工编辑的。...通常,您需要定制管理表单的外观和工作方式。可以通过在注册对象时告诉 Django 所需的选项来实现。 通过重新排列编辑表单中的字段来了解其工作原理。...更多关于 list_display 的信息看这里 再次编辑您的 poll /admin.py 文件,并向问题更改列表页面添加一个改进:使用 list_filter 的过滤器。

    8.2K10

    Django 系列博客(十三)

    当 model 中如果没有自增列,则会自动创建一个列名为 id 的列。 IntegerField 一个整数类型,范围在-2147483648 to 2147483647。...primary_key = True 注:当model中如果没有自增列,则自动会创建一个列名为id的列 from django.db import models class UserInfo(models.Model...): # 自动创建一个列名为id的且为自增的整数列 username = models.CharField(max_length=32) class Group(models.Model...) - 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证 FilePathField(Field) - 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能...Admin中是否可以编辑 help_text Admin中该字段的提示信息 choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作

    1.1K30

    Django 1.10中文文档-第一个应用Part2-模型和管理站点

    每个模型由一个子类django.db.models.Model的类表示。每个模型都有一些类变量,每个变量表示模型中的数据库字段。...每个字段实例的名称(例如question_text或pub_date)就是字段的名称,以机器友好的形式。您将在Python代码中使用此值,您的数据库将使用它作为列名称。...Django admin管理站点介绍 为您的员工或客户生成管理网站用来添加,更改和删除内容是繁琐的工作,不需要太多的创造力。因此,Django完全自动创建模型的管理界面。...进入admin站点 使用在上一步中创建的超级用户帐户登录。您应该会看到Django管理员索引页面: ? 您应该会看到几种类型的可编辑内容:组和用户。...使应用在管理站点可编辑 现在你还无法看到你的投票应用,必须先在admin中进行注册,告诉admin站点,请将poll的模型加入站点内,接受站点的管理。

    2.3K60

    Django学习笔记之ORM字段和字段参数

    Model 在Django中model是你数据的单一、明确的信息来源。它包含了你存储的数据的重要字段和行为。...通常,一个模型(model)映射到一个数据库表, 基本情况: 每个模型都是一个Python类,它是django.db.models.Model的子类。 模型的每个属性都代表一个数据库字段。...- bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名为id的列 from django.db...Django Admin中的错误信息会优先根据Admiin内部的ModelForm错误信息提示,如果都成功,才来检查Model的字段并显示指定错误信息 b....editable Admin中是否可以编辑 help_text Admin中该字段的提示信息 choices

    5.1K10

    django 1.8 官方文档翻译: 1-2-2 编写你的第一个Django应用,第2部分

    在页面的底部还为你提供了几个选项: Save – 保存更改并返回到当前类型的对象的更改列表页面。 Save and continue editing – 保存更改并重新载入当前对象的管理界面。...这样的话你就需要在注册对象 时告诉 Django 对应的配置。 让我们来看看如何在编辑表单上给字段重新排序。...上面那特定的更改使得 “Publication date” 字段在 “Question” 字段之前: 仅有两个字段不会令你印象深刻,但是对于有许多字段的管理表单时,选择一个直观 的排序方式是一个重要的实用细节...ChoiceInline(admin.StackedInline): model = Choice extra = 3 class PollAdmin(admin.ModelAdmin...请注意 Django 默认的管理网站中的任何模板都是可覆盖的。 要覆盖一个模板,只需要像刚才处理 base_site.html 一样 – 从默认的目录下复制到你的自定义目录下,并修改它。

    2.5K40

    Django快速入门——投票程序(7) 自定义后台

    如果表单字段很多,你可能想将它们分成不同部分: from django.contrib import admin from .models import Question class QuestionAdmin...(Question, QuestionAdmin) 这告诉 Django:Choice 对象要在 Question 后台页面编辑。...自定义后台更改列表 现在投票的后台页看起来很不错,让我们对问题列表页面进行一些调整——改成一个能展示系统中所有投票的页面。默认情况下,Django 显示每个对象的 str() 返回的值。...为此,使用 list_display属性,它是一个包含要显示的字段名的元组,在更改列表页中以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):...当输入待搜项时,Django 将搜索 question_text 字段。

    24240
    领券