我正在为我的项目使用django注册。在我的registration_form.html
文件中:如何将占位符添加到Django注册形式
{{form.username}}
{{form.email}}
//other fields
我想为每个字段设置占位符。但是这是一种内置的应用程序。所以我需要找到从我的主应用程序编辑这些领域的方式。
我不想更改Django注册的来源。
我正在为我的项目使用django注册。在我的registration_form.html
文件中:如何将占位符添加到Django注册形式
{{form.username}}
{{form.email}}
//other fields
我想为每个字段设置占位符。但是这是一种内置的应用程序。所以我需要找到从我的主应用程序编辑这些领域的方式。
我不想更改Django注册的来源。
如果你可以覆盖内置的形式,你可以定义占位符如下:
class RegistrationForm(forms.ModelForm):
class Meta:
model = YourModelName
widgets = {
'username' : forms.TextInput(attrs = {'placeholder': 'Username'}),
'email' : forms.TextInput(attrs = {'placeholder': 'E-Mail'}),
}
否则您可以使用使用jQuery占位符添加到字段下面给出的相应字段的id
:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" >
$(document).ready(function(){
$("#id_username").attr('placeholder', '{{form.username.label}}');
$("#id_email").attr('placeholder', '{{form.email.label}}');
});
</script>
您可以使用firebug发现场的id
。
我实际上会创建一个模板标记过滤器来修改字段。
@register.filter
def html_placeholder(field, args=None):
if args == None:
return field
field.field.widget.attrs.update({ "placeholder": args })
return field
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ – max4ever
另一种方法,这对于django.contrib.auth.AuthenticationForm(我认为应该在你的情况以及工作)的工作原理是在渲染视图注入这一信息。这样你就不需要将它嵌入到你的表单类中,也不需要强制jquery。
def index(request):
form = AuthenticationForm(request)
form.fields['username'].widget.attrs.update({
'placeholder': 'Name'
})
form.fields['password'].widget.attrs.update({
'placeholder': 'Password'
})
context = RequestContext(request, {
'form' : form,
})
return HttpResponse(template.render(context))
您是否为此定义了自定义django表单或使用内置表单? – arulmr
我正在使用内置的[forms](http://docs.b-list.org/django-registration/0.8/forms.html?highlight=registration%20form#registration.forms.RegistrationFormUniqueEmail) – alix
这很好吗?你,使用jQuery添加占位符到字段? – arulmr