You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin面板添加字段名称混淆,如何设置字段清晰显示名称

解决Django Admin字段显示不清晰的操作步骤

要实现Admin面板字段名称清晰可辨,只需要修改模型配置和Admin注册配置两步即可:

步骤1:修改models.py,为字段添加展示名称

你遇到的核心问题有两个:一是字段没有设置自定义展示名称,Admin默认会用字段名直接展示;二是模型的__str__方法返回值为ID,外键下拉选择时只能看到数字,无法分辨对应内容。修改后的模型代码如下:

from django.db import models

# Create your models here.
class Course(models.Model):
    # verbose_name参数就是Admin中显示的字段名称
    faculty = models.CharField(max_length=100, verbose_name="所属院系")

    # 修改返回值为实际名称,外键关联时会显示该内容
    def __str__(self):
        return self.faculty

class Semester(models.Model):
    sem = models.CharField(max_length=100, verbose_name="学期")
    # 这里字段名faculty关联的是Course模型,命名有歧义,也可以修改字段名+verbose_name更清晰
    faculty = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name="对应课程")

    def __str__(self):
        # 返回学期+对应课程,方便外键选择时识别
        return f"{self.sem} - {self.faculty.faculty}"
    

class Subject(models.Model):
    faculty = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name="所属课程")
    sem = models.ForeignKey(Semester, on_delete=models.CASCADE, verbose_name="所属学期")
    subject_name = models.CharField(max_length=100, verbose_name="科目名称")

    def __str__(self):
        return self.subject_name

注意:如果原字段命名本身就存在歧义(比如Semester里的faculty实际关联的是Course模型),可以直接修改字段名后再搭配verbose_name,后续维护更方便。

步骤2:配置admin.py,注册模型并自定义展示字段

在你的应用目录下找到admin.py(没有就新建一个),添加如下内容:

from django.contrib import admin
from .models import Course, Semester, Subject

# 自定义Course的Admin展示
@admin.register(Course)
class CourseAdmin(admin.ModelAdmin):
    # 列表页展示的字段
    list_display = ['id', 'faculty']
    # 编辑/新增页展示的字段
    fields = ['faculty']

@admin.register(Semester)
class SemesterAdmin(admin.ModelAdmin):
    list_display = ['id', 'sem', 'faculty']
    fields = ['sem', 'faculty']

@admin.register(Subject)
class SubjectAdmin(admin.ModelAdmin):
    list_display = ['id', 'subject_name', 'faculty', 'sem']
    fields = ['subject_name', 'faculty', 'sem']

修改完成后执行python manage.py makemigrations和python manage.py migrate更新模型配置,重启服务后进入Admin就能看到所有字段都有清晰的中文名称,外键选择项也会显示实际内容而不是ID。

内容的提问来源于stack exchange,提问作者Ujjwol Neupane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:24:02