Rog*_*ger 7 django django-templates django-forms
在我的settings.py中,我已经设置好了
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
Run Code Online (Sandbox Code Playgroud)
现在可以添加我自己的模板:
<project>/templates/django/forms/widgets/
Run Code Online (Sandbox Code Playgroud)
要么
<app>/templates/django/forms/widgets/
Run Code Online (Sandbox Code Playgroud)
这很棒!但是,我找不到的是我在哪里覆盖默认的html(表单)标签?
class TestForm(forms.Form):
first_name = forms.CharField(label="First name", max_length=50)
last_name = forms.CharField(label="Last name")
nick_name = forms.CharField(required=False)
Run Code Online (Sandbox Code Playgroud)
上面的表单将呈现如下标签:
<label for="id_first_name">First name:</label>
Run Code Online (Sandbox Code Playgroud)
我想以不同的方式呈现标签.所以,我认为添加html标签模板会很容易:templates/django/forms/widgets/label.html
这不起作用.正在浏览Django文档,但我找不到如何为标签做这个.显然,标签不是小部件.
https://docs.djangoproject.com/en/1.11/ref/forms/widgets/#built-in-widgets
我的问题,在哪里/如何更改默认标签?
覆盖 Django 中现有的表单小部件实际上是可以完成的。
首先,您需要添加'django.forms'到您的INSTALLED_APPS应用程序以将其视为应用程序。
INSTALLED_APPS = [
...
"django.forms",
...
]
Run Code Online (Sandbox Code Playgroud)
然后附加FORM_RENDERER到您的settings.py
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
Run Code Online (Sandbox Code Playgroud)
有关TemplatesSetting的更多信息可以在 Django 文档中找到。
之后,将您想要覆盖的所有小部件文件从该django/forms/widgets/文件夹复制到您自己的projectname/templates/django/forms/widgets文件夹中。定制吧!
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |