Переопределите метод render_change_form()
в ModelAdmin, который обеспечивает доступ к экземпляру формы:
class Address(model.Model):
street = models.CharField(max_length=50)
class AddressAdmin(admin.ModelAdmin):
def render_change_form(self, request, context, *args, **kwargs):
form_instance = context['adminform'].form
form_instance.fields['street'].widget.attrs['placeholder'] = 'Your street'
return super().render_change_form(request, context, *args, **kwargs)
Этот подход будет таким же для других атрибутов полей, таких как атрибуты, такие как autocomplete
, autofocus
, min
, max
, required
, type
или pattern
. У вас также есть доступ к context["original"]
, который предоставляет экземпляр модели, на случай, если вы захотите изменить поведение в зависимости от экземпляра модели.
Исходный код является наилучшей ссылкой для этого: https://docs.djangoproject.com/en/2.2/_modules/django/contrib/admin/options/#ModelAdmin