web-dev-qa-db-fra.com

Description du champ de formulaire dans Django admin

Comment ajouter un indice pour le champ de formulaire dans Django admin comme dans l'exemple suivant?

form field description in Django admin

(ici: URL et Conten les descriptions sont affichées en gris sous le champ)

67
megido

Lors de la définition de vos champs dans models.py:

myfield = models.CharField(max_length=100, help_text="This is the grey text")

Ajoutez ce lien à vos favoris:

https://docs.djangoproject.com/en/dev/ref/models/fields/#help-text

Je me retrouve à y faire référence tout le temps (pas seulement pour help_text, mais pour tout ce qui concerne les champs de modèle)!

110
Timmy O'Mahony

En plus de la réponse de Timmy, si vous souhaitez afficher du texte d'aide supplémentaire et que vous souhaitez également avoir un balisage utile, vous pouvez afficher individuellement les ensembles de champs de formulaire individuel et ajoutez un champ de description . En utilisant votre exemple, supposons que vous vouliez décomposer le champ Contenu en son propre bloc de jeu de champs et ajouter du texte d'aide détaillé. Vous pouvez faire quelque chose comme:

from mymodel.models import MyModel
from Django.contrib import admin

"""
Custom Help Text
"""
CONTENT_HELP_TEXT = ' '.join(['<p>Here is some multi-line help',
                              'which is a long string so put',
                              'into a list which is then joined',
                              'with spaces. I can do fun things',
                              'like have <strong>bold</strong>',
                              'and some line breaks.<br/>'])
"""
Customize Admin
"""
class MyModelAdmin(admin.ModelAdmin):
    """
    Add your other customizations
    like actions, list_display, list filter, etc
    """
    fieldsets = [
        ('Content', {
            'fields':('content',),
            'description': '<div class="help">%s</div>' % CONTENT_HELP_TEXT,
        }),
    ]

admin.site.register(MyModel, MyModelAdmin)

Plus d'informations dans la zone Django docs (faites défiler vers le bas jusqu'aux ensembles de champs).

20
tatlar