help_text field admin django

6 мая 2018 г. 6:15

help_text для поля

Чтобы быстро добавить динамический help_text для поля модели, можно воспользоваться методом get_form():

class MyAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
        form = super(MyAdmin, self).get_form(request, obj, **kwargs)
        form.base_fields['my_field'].help_text = 'Custom help text'
        return form

Или использовать форму для админ-класса:

class MyAdmin(admin.ModelAdmin):
    form = MyForm

class MyForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['my_field'].help_text = 'Custom help text'

help_text для кастомного поля

Иногда хочется добавить help_text для своего кастомного поля в админке Django, например так:

from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    fields = ('title', 'custom_field')

    def custom_field(self, obj):
        # some code...
        return some_result

    custom_field.help_text = _('Custom help text')

Но до сих пор (на момент написания статьи 6 мая 2018 года) для кастомный полей в настройке admin-класса Django такой функции нет. Поэтому самый простой способ добавить вспомогательный текст - сделать это вручную. Например:

from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    fields = ('title', 'custom_field')

    def custom_field(self, obj):
        # some code...
        return '{}<p class="help">{}</p>'.format(some_result, _('Custom help text'))

Именно благодаря <p class="help">{}</p>, отображается вспомогательный текст для полей модели, например, таких как: title = models.CharField(_('Title'), max_length=50, help_text=_('Custom help text')).

В Django сообществе уже обсуждается добавление свойства help_text кастомным полям: https://code.djangoproject.com/ticket/26761, поэтому ждём, когда добавят эту возможность.

Оцените статью

0 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Права на использование материала, расположенного на этой странице https://vivazzi.pro/it/help-text-field/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="https://vivazzi.pro/it/help-text-field/">https://vivazzi.pro/it/help-text-field/</a>

Подробнее: Правила использования сайта

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментрирования от своего имени, войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте