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

Django Admin列表页:如何指定自定义字段替代模型__str__方法?

解决Django Admin列表页仅显示模型指定属性的问题

问题描述

我有一个Product模型,其__str__方法会渲染多个属性,但我只想在Django Admin的列表页中显示name属性,且不想重写__str__方法。尝试在Admin类中设置list_display = ("name",)后,Django仍然渲染__str__定义的所有属性内容。

问题原因

你没有将自定义的ProductAdmin类与Product模型进行显式注册,Django默认使用基础的ModelAdmin类,而默认的列表页会显示模型__str__方法的返回值。

解决方案

在admin.py中添加模型与自定义Admin类的注册语句,确保Django使用你配置的ProductAdmin:

修正后的admin.py代码

from django.contrib import admin
from .models import Product
from .forms import ProductForm

class ProductAdmin(admin.ModelAdmin):
    list_display = ("name",)
    form = ProductForm

# 关键:注册模型与自定义Admin类
admin.site.register(Product, ProductAdmin)

说明

完成上述修改后,Django Admin的Product列表页会仅显示name列的内容,同时保留模型原有的__str__方法不变,不影响其他场景下的使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:48:15