Опис поля форми в адміністраторі django


76

Як додати підказку для поля форми в адміністраторі django, як у наступному прикладі?

опис поля форми в адміністраторі django

(тут: URL-адреси та описи вмісту відображаються сірим кольором у полі)

Відповіді:


132

При визначенні полів у models.py:

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

Закладка за цим посиланням:

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

Я відчуваю, що весь час на це посилаюся (не лише для help_text, але й для всього, що пов’язано з полями моделі)!


2
Я думаю , що ви отримали неправильне посилання, так як ми говоримо про models.FooFieldніж forms.FooField. Це має бути docs.djangoproject.com/en/dev/ref/models/fields/#help-text
Механічна равлик

3
а як щодо додавання багаторядкового поля на зразок опису?
пранавк

1
@pranavk це html, щоб ви могли використовувати його <br/>для розривів рядків
RickyA

23

На додаток до відповіді Тіммі, якщо ви хочете відобразити додатковий довідковий текст і хочете також мати корисну розмітку, ви можете спеціально відобразити окремі набори полів форми та додати поле опису . На вашому прикладі скажімо, що ви хотіли розбити поле Вміст на власний блок набору полів і додати кілька детального тексту довідки. Ви можете зробити щось на зразок:

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)

Більше інформації в документації Django (прокрутіть вниз до наборів полів).


у дужках повинна стояти кома після "вмісту"
thevasya

Прийнята відповідь є стандартом для форм, але це найкраща відповідь, оскільки вона не залежить від форм і покладається на розподіл набору полів, встановлений адміністратором моделі. Дякую!
radtek

немає необхідності приєднувати списки рядків з пробілами - ви можете просто використовувати косу риску `` `, щоб продовжити рядок у наступному рядку, не вставляючи розрив рядка: docs.python.org/3.2/tutorial/introduction.html#strings
ccpizza

2
@ diegueus9: Ваше редагування моєї відповіді призвело до граматичної помилки: ви видалили пробіл між словами на новий рядок, що спотворює речення. Будь ласка, виправте або поверніть до оригіналу.
tatlar

1
@ diegueus9: Я повернувся до попередньої версії відповіді. Будь ласка, перевірте запропоновані зміни щодо синтаксису перед відновленням.
татлар

0

У вашому файлі forms.py після

fields = ['URL',....]

додати

help_texts = {"URL": "Example..."}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.