3
我在表單樣式中有兩個問題。Django樣式登錄表單並添加額外跨度
- 對於我的登錄,我使用的是Django的默認身份驗證功能,並沒有手動編寫任何視圖或表單。
urls.py
urlpatterns += patterns(
'django.contrib.auth.views',
url(r'^login/$','login',
{'template_name':'login.html'},
name='qna_login'),
url(r'^logout/$','logout',
{'next_page':'qna_home'},
name='qna_logout'),
)
的login.html
{% extends "base.html" %}
{% block content%}
{% if form.errors %}
<p class="text-warning"> Your username and/or password didn't match </p>
{% endif%}
<form role="form" class="form-horizontal" method="post" action="{% url 'django.contrib.auth.views.login' %}">
<div class="form-group">
{% csrf_token %}
{{ form }}
<input type="submit" class="btn btn-primary" value="login" />
<input type="hidden" name="next" value="{{ next }}" />
</div>
</form>
{% endblock %}
如何引導造型補充呢?
- 對於新用戶註冊,我添加了一些引導特定樣式,但需要添加其他跨度並用Glyphicons替換標籤。
forms.py
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = User
fields = ('username', 'email', 'password')
def __init__(self, *args, **kwargs):
super(UserForm,self).__init__(*args,**kwargs)
self.fields['username'].widget.attrs.update({'class':'form-control','placeholder':'Username'})
self.fields['email'].widget.attrs.update({'class':'form-control','placeholder':'Email'})
self.fields['password'].widget.attrs.update({'class':'form-control','placeholder':'Password'})
我需要做的就是替換一下在模板生成,如
<p><label for="id_username">Username:</label> <input class="form-control" id="id_username" maxlength="30" name="username" placeholder="Username" type="text" /> <span class="helptext">Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters</span></p>
通過自定義引導插件和glyphicon,像
<div class="input-group">
<span class="input-group-addon" style="background-color:#b77b48; color:white"><span class="glyphicon glyphicon-user"></span></span>
<input type="text" class="form-control" placeholder="Username">
</div>
謝謝你,這回答我的第二個問題,但這並不適用引導樣式到輸入框本身。我用它來設計表單的其餘部分。如何將CSS類和佔位符添加到{{form.username}}和{{form.password}}等。請注意,我沒有爲我的登錄名定義forms.py或view,因爲它提供了django.contrib.auth。我無法在文檔中找到方法。 – yayu
如果您閱讀文檔,可以進一步修改字段。 django後端唯一需要的是輸入字段名稱。你甚至可以使用靜態表單。 –
已更新的答案示例。 –