没有“简单”的方法可以做到这一点,所以我首先要问你为什么要这么做。我不明白为什么
<th>
<th>
元素等效于
<td>
,但它在默认情况下具有额外的样式(通常
font-weight: bold; text-align: center;
也就是说,这里有一些途径可以考虑。第169行(Django 1.2.1)确定th/td选项
django.contrib.admin.templatetags.admin_list.py
. 下面是它出现的上下文的截短摘要:
def items_for_result(cl, result, form):
first = True
for field_name in cl.list_display:
# ...
if (first and not cl.list_display_links) or field_name in cl.list_display_links:
table_tag = {True:'th', False:'td'}[first]
first = False
# ...
yield mark_safe(u'<%s%s><a href="%s"%s>%s</a></%s>' % (table_tag, row_class, url, ...)
else:
# ...
yield mark_safe(u'<td%s>%s</td>' % (row_class, result_repr))
-
定义一个“items_for_result”templatetag,它调用上面的模板标记并替换任何
<th>
s在产生的值中
<td>
s、 然后你可以覆盖“改变_列表.html和{%load%}加载了“管理列表”之后的标记。
-
编辑Django代码。不过你以后会后悔的。
-
如果您不介意表中的任何列都不是该项的编辑页的链接(我无法想象您为什么会这样做),那么您可以在
admin.py
admin.site.register(YourModel, YourModelAdmin)
admin.site._registry[YourModel].list_display_links = ['not_a_field_name',]`
因为管理模型只验证一次,当
register()
调用时,可以获取注册的
ModelAdmin
然后给它一个无效的
list_display_links
财产。