我到处找了一个简单的方法来添加
placeholder
django表单输入字段的文本元素。有几个
example
希望修改模型窗体或使用
add-ins
. 我拼凑了几个不同的例子来提出以下…
这是我的第一个自定义模板标记,在添加大量模板更改之前,我想验证以下内容是否正确:
模板标记/
placeholder.py
from django.template import Library
import re
register = Library()
def placeholder(value, token):
value.field.widget.attrs["placeholder"] = token
return value
register.filter(placeholder)
模板/my_app/customer_form.html
(实现引导)
<div class="container">
<h5>Add a New Customer</h5>
<form method="post">{% csrf_token %}
<table class="table table-borderless table-sm table-half">
<tr><td>{{ form.customer | placeholder:'Customer Name' }}</td></tr>
<tr><td>{{ form.address1 | placeholder:'Address' }}</td></tr>
<tr><td>{{ form.address2 | placeholder:'Address' }}</td></tr>
<tr><td>{{ form.city | placeholder:'City' }}</td></tr>
<tr><td>{{ form.state | placeholder:'State' }}</td></tr>
<tr><td>{{ form.zip | placeholder:'Zip' }}</td></tr>
</table>
<input type="submit" class="btn btn-outline-primary" value="Add" />
</form>
</div>
火狐
我注意到几件事:
a)看起来我可以(i)在自定义标记中使用字段标记,(ii)使用纯文本。
b)自定义标记名和值之间没有空格。如果有空位的话
TemplateSyntaxError
那个
placeholder requires 2 arguments, 1 provided
. (?)
我的问题是:所有其他的例子
field.widget.attrs
在课堂上
__init__
表单(或视图/模型中的其他部分)的定义,而不是通过自定义标记-使用自定义标记是否存在设计问题,只是表单不好还是其他方面好?