网址:http://twitter.github.com/bootstrap/base-css.html#forms
它说我必须添加
<fieldset
class="control-group error">
…
</fieldset>
但我会在哪里添加?
如果密码不匹配,如果已经使用了用户名,如果电子邮件地址无效,我希望输入字段显示红色边框并向右显示错误消息(就像在Twitter中一样) Boostrap表单页面)
这是我的整个 registration_form.html 模板。它有一个{{form}}标记,默认包含4个字段:
registration_base.html 只是扩展了base.html,其中包含页面的基本结构。
{% extends "registration/registration_base.html" %}
{% block title %}Register for an account{% endblock %}
{% block content %}
<table>
<form method='post' action='' class="control-group error" >{% csrf_token %}
{{ form }}
<tr><td></td><td><input type="submit" value="Register" /></td>
</form>
</table>
{% endblock %}
实施例:
答案 0 :(得分:4)
django-bootstrap是一个很棒的库,可以自动为您执行此操作。它依赖于使用它为您呈现的自定义Form对象。用于django-registration中的注册过程的默认表单是registration.forms.RegistrationFormUniqueEmail
。要将此表单与django-bootstrap组合,您需要定义一个继承自两者的新类。例如,将它放在forms.py文件中:
# forms.py
from bootstrap.forms import BootstrapForm
from registration.forms import RegistrationFormUniqueEmail
class RegistrationForm(RegistrationFormUniqueEmail, BootstrapForm):
pass
接下来,您必须告诉django-registration使用这个新表单。 django-registration的默认设置是将其添加到urls.py:
# urls.py
(r'^accounts/', include('registration.backends.default.urls')),
但是,这使用默认表单。要进行自定义,您可以明确指定URL。从django-registration的default backend urls.py复制它们。注册的默认条目如下所示:
# urls.py
from registration.views import register
url(r'^register/$',
register,
{'backend': 'registration.backends.default.DefaultBackend'},
name='registration_register'),
要指定您要使用自定义表单对象,the documentation表示您可以传递参数form_class
,如下所示:
# urls.py
from yourapp.forms import RegistrationForm
from registration.views import register
url(r'^register/$',
register,
{'backend': 'registration.backends.default.DefaultBackend'
'form_class': RegistrationForm},
name='registration_register'),
您可以对django-registration中使用的所有表单重复此过程。出现错误时,生成的注册表格如下所示: