まず、新しいプロジェクトの対応する場所にHTMLをコピーし、次の2つの赤いボックス、(庭の私のブログの列内のファイル保存、特定のhtmlファイル)と同じを配置するようにしてください、
実際のプロジェクトの名前に置き換えられるために店のアプリケーション、場所、覚えている:htmlファイルは、{%%のURL「ログインショップ」}と同様に表示されます。
二、以下のように設定した設定。
ショップ:product_list表現ログインに成功した後、ジャンプへのパス(「product_list /」)URLアドレスを。
ショップ:着陸パス(「ログイン/」)URLアドレスを表してログイン。
base.html以下のコードに合わせて設けられた3つの、
{%負荷静的%} <!DOCTYPE HTML> <HTMLのlang = "EN"> <HEAD> <メタのcharset = "UTF-8"> <タイトル> {%ブロックタイトル%} {%の末端ブロック%} </タイトル> <リンクのhref = "{%静的"CSS / base.css" %}" REL = "スタイルシート"> </ head> <body> <DIV ID = "ヘッダ"> <A HREF = "/"クラス= "ロゴ">マイショップ</a>の </ div> {%であればrequest.user.is_authenticated%} 20ピクセル"> <divのidは="サブヘッダ」スタイル="マージン左 の<divクラス= "カート"> カートがあります空の。 </ div> </ div> {%ENDIF%} <divのスタイル= "マージン右:20ピクセル"> {%request.user.is_authenticated%なら} こんにちは{{request.user.first_name}}、<a href="{% URL "shop:password_change" %}">修改密码</a>の <A HREF = "{ %URL "ショップ:ログアウト" %} ">ログアウト</a>の {%他%} <a href="{% URL "shop:login" %}">ログインする</a> {%endifの%} </ DIV> <DIV ID = "コンテンツ"> {%ブロックコンテンツ%} {%エンドブロック%} </ div> </ body> </ HTML>
第四には、forms.py内のファイルの一番下に、次のコードを貼り付けます。
ジャンゴインポートフォームから django.contrib.auth.modelsインポートユーザーから クラスLoginForm(forms.Form): ユーザ名= forms.CharField() パスワード= forms.CharField(ウィジェット= forms.PasswordInput) クラスUserRegistrationForm(forms.ModelForm): パスワード= forms.CharField(ラベル= 'パスワード'、ウィジェット= forms.PasswordInput) パスワード2 = forms.CharField(ラベル= 'を繰り返しパスワード'、ウィジェット= forms.PasswordInput) クラスのMeta: モデル=ユーザー フィールド=( 'ユーザ名'、 ' first_nameの」、 'メール') デフclean_password2(自己): CD = self.cleaned_data 場合は、CD [ 'パスワード'] = CD![ 'パスワード2']: 昇給フォーム。ValidationErrorを( 'パスワードドン\' tは一致。 ') リターン・CD [ 'パスワード2']
第五には、以下のurls.pyファイルに、次のコードを貼り付けます。
django.urlsからパスをインポート auth_viewsとしてdjango.contrib.authインポートビューから から。インポートビューは = '店' APP_NAME urlpatterns = [ パス( 'ログイン/'、auth_views.LoginView.as_view()、名前= 'ログイン')、 「=パス( 'ログアウト/'、auth_views.LogoutView.as_view()、名前をログアウト')、 パス('」、views.product_list、名前= 'product_list')、 #パスワード変更のURL パス( 'password_change /'、 auth_views.PasswordChangeView.as_view( テンプレート名= 'ショップ/ password_change_form.html'、 success_url =」 / password_change /行わ/」 )、NAME = 'password_change')、 パス(」 auth_views.PasswordChangeDoneView.as_view( テンプレート名= 'ショップ/ password_change_done.html' )、名前= 'password_change_done')、 #リセットパスワードのURL パス( 'パスワードリセット/'、 auth_views.PasswordResetView.as_view( テンプレート名= "ショップ/ password_reset_form。 HTML」、 email_template_nameは= "ショップ/ password_reset_email.html"、 subject_template_name = "ショップ/ password_reset_subject.txt"、 success_url = "/パスワード・リセット・ダン/"、 )、 名= 'password_reset')、 パス( 'パスワードのリセット-done /」、 auth_views.PasswordResetDoneView。as_view( テンプレート名= "ショップ/ password_reset_done.html" )、 名前= 'password_reset_done')、 パス( 'パスワードリセット確認/ <uidb64> / <トークン> /'、 auth_views.PasswordResetConfirmView.as_view( テンプレート名= "ショップ/ password_reset_confirm。 HTML」、 success_url = "/パスワード・リセット・完全/"、 )、 名= 'password_reset_confirm')、 パス( 'パスワードリセット-完全/'、 auth_views.PasswordResetCompleteView.as_view( テンプレート名= "ショップ/ password_reset_complete.html" )、 名前= 'password_reset_complete')、 パス( '/登録'、views.register、名前= '登録')、 ]
第六は、views.pyファイルの下に、次のコードを貼り付けます。
インポートget_object_or_404、からdjango.shortcutsをレンダリング カテゴリー.models輸入、製品から cart.formsインポートCartAddProductFormから インポートlogin_required django.contrib.auth.decoratorsから .formsインポートUserRegistrationFormから :DEFレジスタ(リクエスト) IFは==「POSTをrequest.method 「: user_form = UserRegistrationForm(request.POST) user_form.is_valid IF(): #は、新しいユーザーオブジェクトを作成し、それを保存するために避け new_user = user_form.save(偽=コミット) #設定は、パスワードの選択 new_user.set_password(user_formを.cleaned_data [ 'パスワード']) ユーザオブジェクトの保存# new_user.save() リターンレンダリング(リクエスト、 'ショップ/ register_done.html'、{ 'new_user':new_user}) 他: user_form = UserRegistrationForm() の戻りは(要求、 'ショップ/ register.html'、{ 'user_form':user_formを})レンダリング @ login_required DEF product_list(リクエスト、category_slug =なし): #......... @login_required DEF product_detail(要求ID、スラグ): #........