2017-07-11 9 views
0

ブートストラップをdjangoログインフォームに適用しようとしています。私は何時間もグーグルを磨いてきました。ほとんどすべての人がカスタムauthentication_formurls.pyに設定し、カスタムログインフォームのユーザー名とパスワードのフィールドをオーバーライドし、ウィジェットのattrsパラメータを渡して同じことを言っています。私はこれを行ったが、djangoはまだ私の入力フィールドにフォームコントロールクラスを適用していません。私は何がうまくいかないのかよく分かりません。フォームはレンダリングされますが、ブートストラップスタイリングは適用されません。私はWidget Tweaksを使用し、私のテンプレートでカスタム "authentication_form"はブートストラップを適用しませんCSS

urls.py

from django.conf.urls import url 
from django.contrib.auth.views import LoginView, LogoutView, 
    PasswordChangeView, PasswordChangeDoneView, \ 
    PasswordResetView, PasswordResetDoneView, 
    PasswordResetConfirmView, PasswordResetCompleteView 

from account.forms import LoginForm 
from account.views import dashboard 

urlpatterns = [ 
    url(r'^$', dashboard, name='dashboard'), 
    url(r'^login/$', LoginView.as_view(), {'authentication_form': 
     LoginForm}, name='login'), 
    url(r'^logout/$', LogoutView.as_view(), name='logout'), 
    url(r'^password-change/$', PasswordChangeView.as_view(), 
     name='password_change'), 
    url(r'^password-change/done/$', PasswordChangeDoneView.as_view(), 
     name='password_change_done'), 
    url(r'^password-reset/$', PasswordResetView.as_view(), 
     name='password_reset'), 
    url(r'^password-reset/done/$', PasswordResetDoneView.as_view(), 
     name='password_reset_done'), 
    url(r'^password-reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A- 
     Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', 
     PasswordResetConfirmView.as_view(), 
     name='password_reset_confirm'), 
    url(r'^password-reset/complete/$', 
     PasswordResetCompleteView.as_view(), 
     name='password_reset_complete') 
] 

forms.py

from django.contrib.auth.forms import AuthenticationForm 
from django.forms import CharField, TextInput, PasswordInput 


class LoginForm(AuthenticationForm): 
    username = CharField(widget=TextInput(attrs={'class': 'form- 
    control'})) 
password = CharField(widget=PasswordInput(attrs={'class': 'form- 
    control'})) 

views.py

@login_required(
    redirect_field_name=reverse_lazy('login'), 
    login_url=reverse_lazy('login')) 
def dashboard(request): 
    return render(request, 'account/dashboard.html', {'section': 
     'dashboard'}) 

login form

+0

のような個人用CSSクラスを使用できます。ここで、views.pyのフォーム検証はですか?フォームが有効かどうかを確認してからデータを保存する必要があります。 – hansTheFranz

+0

@ hasTheFranz私はある時点でそれを持っていましたが、スタイリングの問題を修正しようとしたときにそれを取り除きました –

+0

ええ、それを元に戻してください。テンプレートにもフォームが表示されていますか?テンプレートで '{{form}}'を使用していますか? – hansTheFranz

答えて

0
<form method='POST' action="/" enctype='multipart/form-data'> 
{% load widget_tweaks %} 
{% csrf_token %} 
{{ form.first_name |add_class:"customCSS1 customCSS2" }} 
{{ form.second_name |add_class:"form-control customCSS4" }} 
</form> 
{{ form.media.js }} 

このプラグインを使用すると、必要に応じてフォームのスタイルを設定できます。 form-controlクラスを追加するか、または

.customCSS1{ 
    width60%; 
    border-radius:5px; 
} 
関連する問題