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
相关产品推荐
相关产品推荐

