Django Girls Tutorial: Extensions のユーザー認証のところではまった話
Django Girls Tutorial: Extensions のユーザー認証のところではまった話:
Django Girls Tutorial
の続編(おまけ?)である、
Django Girls Tutorial: Extensions
を読んでいて少しはまったので、解決策を備忘として書く。
環境
・python3.6
・Django2.1
・Ubuntu18
上記 Django Girls Tutorial: Extensions の中の
Homework: Adding security to your website
を読んでいた。
このチャプターの内容は、
・本編で作ったブログサイトにログイン・ログアウトの機能をつける
・ログイン中の人しか記事の作成・編集・削除ができないようにする
というもの。
一番最後のところで、ログイン・ログアウト画面のパスを追加するために
mysite/urls.pyを下記のように変更したところエラー
(Django Girlsのサイトでは上記のように path() は使わず url() と正規表現でパスを指定しているが、Django2 ではパスを指定する際に正規表現ではなく path() を使うといいよとのことなので path() を使うようにしている。
Django2.0以降の変更点で気づいたポイント:path設定 "path"を使ったinclude)
コンソールに書かれたエラー内容が
とのこと。django.contrib.auth.views が login の属性を持っていないらしい。
上記の文字列でググると stack overflow の記事
AttributeError: module Django.contrib.auth.views has no attribute
が出てきたが、真似してみるも上手くいかず。
最終的に
Django2 でユーザー認証(ログイン認証)を実装するチュートリアル -2- サインアップとログイン・ログアウト
を参考にして
とすると動いた。
もともとDjango側でユーザー認証用のurlsが用意されているっぽい。
Django2になって仕様が変わったのだろうか。
この記事について
Django Girls Tutorialの続編(おまけ?)である、
Django Girls Tutorial: Extensions
を読んでいて少しはまったので、解決策を備忘として書く。
環境
・python3.6
・Django2.1
・Ubuntu18
何が起こったか
上記 Django Girls Tutorial: Extensions の中のHomework: Adding security to your website
を読んでいた。
このチャプターの内容は、
・本編で作ったブログサイトにログイン・ログアウトの機能をつける
・ログイン中の人しか記事の作成・編集・削除ができないようにする
というもの。
一番最後のところで、ログイン・ログアウト画面のパスを追加するために
mysite/urls.pyを下記のように変更したところエラー
mysite/urls.py
from django.contrib import admin from django.urls import path from django.conf.urls import include, url from django.contrib.auth import views urlpatterns = [ path('admin/', admin.site.urls), path('', include('blog.urls')), path('accounts/login/', views.login, name='login'), path('accounts/logout/', views.logout, name='logout', kwargs={'next_page': '/'}), ]
Django2.0以降の変更点で気づいたポイント:path設定 "path"を使ったinclude)
コンソールに書かれたエラー内容が
AttributeError: module 'django.contrib.auth.views' has no attribute 'login'
上記の文字列でググると stack overflow の記事
AttributeError: module Django.contrib.auth.views has no attribute
が出てきたが、真似してみるも上手くいかず。
解決方法
最終的にDjango2 でユーザー認証(ログイン認証)を実装するチュートリアル -2- サインアップとログイン・ログアウト
を参考にして
mysite/urls.py
from django.contrib import admin from django.urls import path from django.conf.urls import include urlpatterns = [ path('admin/', admin.site.urls), path('', include('blog.urls')), path('accounts/', include('django.contrib.auth.urls')), ]
もともとDjango側でユーザー認証用のurlsが用意されているっぽい。
Django2になって仕様が変わったのだろうか。
コメント
コメントを投稿