Das wäre eine sehr nette Funktion, die im Kern von Djangos Admin hinzugefügt wird. Bis dahin ist hier eine kurze Anleitung zu Ihrer Frage.
Nehmen wir an, dass Sie die docstring
jedes Modells, wie diese drucken möchten:
class MyModel(models.Model):
"""
I wanna get printed in the Admin!
"""
# model fields here
Also, wollen Sie es in der change_list
Seite zu drucken. Gut.
a Erstellen custom template tag (entweder innerhalb der App oder eine andere App erstellen, die die globalen Template-Tags/Filter halten wird) wie folgt aus:
from django import template
from django.utils.html import mark_safe
register = template.Library()
@register.simple_tag()
def model_desc(obj):
if obj.__doc__:
return mark_safe('<p>{}</p>'.format(obj.__doc__))
return ''
nun in Ihrem Projektverzeichnis (wo manage.py
Leben), die eine Struktur wie folgt erstellen:
project/
project/
project stuff here, i.e wsgi.py, settings etc
myapp/
myapp stuff here, i.e models, views etc
templates/
admin/
change_list.html
manage.py
Inside thehinzufügendiese:
{% extends 'admin/change_list.html' %}
{% load yourapp_tags %}
{# block.super will print the "Select <Model> to change" h1 title #}
{# The model_desc template tag is the one you created and prints the docstring of the given model #}
{% block content_title %}{{ block.super }}<br>{% model_desc cl.model %}{% endblock %}
Hier ein Screenshot:
[UPDATE]: Ich habe seen in the source, dass, wenn keine da ist docstring
angegeben, Django für Sie generieren in der folgenden Form: ModelName(model_field_name1, model_field_name2, ...)
. Wenn Sie das nicht möchten, tun Sie das einfach:
class MyModelWithoutDocstring(models.Model):
# model fields here
MyModelWithoutDocstring.__doc__ = '' # "reset" the __doc__ on this model.
Hat eine der folgenden Antworten für Ihren Fall funktioniert? –
Ja es ist, ich habe ein paar Änderungen auf der HTML-Seite vorgenommen. Legen Sie einfach das Templatetag in eine andere Zeile, um sicherzustellen, dass die Schaltflächenausrichtung auf der rechten Seite nicht beeinträchtigt wird. Vielen Dank! –