将属性添加到django中的一个表单字段

时间:2011-09-14 20:12:37

标签: python django

我正在尝试向其中一个表单字段添加一个特殊的template属性,我将用于在模板标记中呈现表单。这是代码:

form = ProfileForm()

for field in form:
    if field.name == 'email':
       field.template = 'email_field.html'

这样,原始form变量不会被修改。有没有办法实现我的目标?

1 个答案:

答案 0 :(得分:1)

我假设您可能想要构建一个html5电子邮件字段:

from django import forms
from django.forms.widgets import Widget
from django.utils.safestring import mark_safe


class Html5Email(Widget):

    def render(self, name, value, attrs=None):
        return mark_safe(u'<input name="custom-email" type="email" />')


class YourForm(forms.Form):
    html5_email = forms.CharField(widget=Html5Email())

我通过浏览Django源代码想出了上述内容。由于我没有亲自在实际项目中使用上述内容,因此代码可能需要充实。