我可以建议和替代方法来获得相同的东西吗?
试着放
attrs = {'placeholder':'your placeholder text here'}
像这样进入您的表单字段小部件:
formfield = SomeField(widget = SomeWidget(attrs = {'placeholder':'your placeholder text here'} ))
然后你可以打印出来
{{ field }}
在模板中并完成它。
编辑:回应第一条评论。
由于我刚刚开始新项目并在页面顶部下载了带有漂亮时尚登录表单的 html5 样板文件,因此我必须完全按照我的建议进行操作。我是这样做的:
表格.py:
from django.contrib.auth.forms import AuthenticationForm
class MyAuthenticationForm(AuthenticationForm):
def __init__(self, *args, **kwargs):
super(MyAuthenticationForm, self).__init__(*args, **kwargs)
self.fields['username'].widget.attrs['placeholder'] = self.fields['username'].label
self.fields['password'].widget.attrs['placeholder'] = self.fields['password'].label
现在也许您的问题是您还想使用 django.contrib.auth.views.login 来登录用户,并且该视图使用 django 默认身份验证表单。不是问题!
打开你的 urls.py 并使用这个魔法:
from yourapp.forms import MyAuthenticationForm
from django.contrib.auth.views import login
urlpatterns = patterns('',
url(r'^login/$',
login,
{'template_name': 'yourapp/login.html', 'authentication_form':MyAuthenticationForm},
name='auth_login'),
)
奇迹般有效