from django import forms
class MyModelAdmin(admin.ModelAdmin):
def render_change_form(self, request, context, *args, **kwargs):
form_instance = context['adminform'].form
for key, field in form_instance.fields.items():
if isinstance(field.widget, (forms.TextInput, forms.EmailInput)):
field.widget.attrs.update({'placeholder': field.label})
return super().render_change_form(request, context, *args, **kwargs)
重写ModelAdmin上的
render_change_form()
方法,该方法提供对表单实例的访问:对于其他字段属性,如}等属性,这种方法是相同的。您还可以访问提供模型实例的
autocomplete
、autofocus
、min
、max
、required
、type
或{context["original"]
,以防您想根据模型实例更改行为。在源代码是最好的参考: https://docs.djangoproject.com/en/2.2/_modules/django/contrib/admin/options/#ModelAdmin
有文档记录的方法是重写^{} :
如果您查看modelform_factory的文档,您将看到可以将
widgets
作为kwarg传递。所以这应该是有效的:或者,如果您想确保没有重写任何小部件(如果您继承了
^{pr2}$ModelAdmin
的子类):这是一种无需手动向每个字段添加占位符文本的方法:
admin.py
相关问题 更多 >
编程相关推荐