Il n'y a pas de façon "facile" de le faire, je dois donc d'abord vous demander pourquoi exactement vous avez besoin de le faire. Je ne vois pas pourquoi l'élément <th>
devrait "évidemment" casser votre conception. L'élément <th>
est équivalent à <td>
, sauf qu'il a un style supplémentaire par défaut (généralement font-weight: bold; text-align: center;
). Vous devriez pouvoir en tenir compte dans votre CSS.
Cela dit, voici quelques pistes à suivre. Le choix th/td est déterminé à la ligne 169 (Django 1.2.1) de django.contrib.admin.templatetags.admin_list.py
. Voici un résumé snipped du contexte, il apparaît dans:
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))
Comme vous pouvez le voir, il n'y a aucun moyen évident de modifier le comportement qui détermine la valeur de table_tag, donc quelques-unes des options que vous avez sont:
- Définissez un modèle de modèle "items_for_result" qui appelle celui ci-dessus et remplace
<th>
s dans les valeurs fournies avec <td>
s. Ensuite, vous pouvez remplacer "change_list.html" et {% load%} le tag après le chargement de "admin_list".
- Modifiez le code Django. Vous le regretterez plus tard cependant.
Si vous êtes OK avec aucune des colonnes du tableau étant un lien vers la page d'édition de l'élément (je ne peux pas imaginer pourquoi vous), vous pouvez utiliser ce hack laid dans votre admin.py
:
admin.site.register(YourModel, YourModelAdmin)
admin.site._registry[YourModel].list_display_links = ['not_a_field_name',]`
Puisque les modèles d'administration sont qu'une seule fois validé, ce qui se passe lorsque register()
est appelé, vous pouvez récupérer le ModelAdmin
enregistré par la suite et lui donner une propriété list_display_links
non valide.
En effet, éditer le CSS est beaucoup plus facile. Cependant, du point de vue de l'utilisabilité (et de mon idéalisme), il ne devrait être utilisé que pour une cellule d'en-tête. C'est juste ridicule pourquoi ils utilisent th au lieu de td. – Furunomoe