1
ログインすると、セッションにユーザー名を保存します。 しかし、ときに私が私のviews.py
にセッションを設定しますが、以下のエラーが出ます:プロジェクトでdjangoのセッションを使用できません
Internal Server Error: /cookie/login1/
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/utils/deprecation.py", line 142, in __call__
response = self.process_response(request, response)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/contrib/sessions/middleware.py", line 58, in process_response
request.session.save()
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/contrib/sessions/backends/db.py", line 81, in save
return self.create()
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/contrib/sessions/backends/db.py", line 50, in create
self._session_key = self._get_new_session_key()
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/contrib/sessions/backends/base.py", line 164, in _get_new_session_key
if not self.exists(session_key):
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/contrib/sessions/backends/db.py", line 46, in exists
return self.model.objects.filter(session_key=session_key).exists()
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/db/models/query.py", line 670, in exists
return self.query.has_results(using=self.db)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/db/models/sql/query.py", line 517, in has_results
return compiler.has_results()
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/db/models/sql/compiler.py", line 845, in has_results
return bool(self.execute_sql(SINGLE))
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/db/models/sql/compiler.py", line 886, in execute_sql
raise original_exception
OperationalError: no such table: django_session
を私は自分のコードをテストし、理由を見つけることができませんでした。 urls.py
で
:
views.py
で
urlpatterns = [
...
url(r'^login1/$', views.login1),
url(r'^index1/$', views.index1),
]
、私は2つの方法があり、login1成功ならば、私はindex1.htmlにリダイレクトします:
def login1(request):
if request.method == 'GET':
return render(request, 'cookie/login1.html')
elif request.method == 'POST':
username = request.POST.get('username')
pwd = request.POST.get('pwd')
print ('username:'+username, 'pwd:'+pwd)
if username == 'root' and pwd == '123':
request.session['username'] = username
return redirect('/cookie/index1/')
else:
return render(request, 'cookie/login1.html')
def index1(request):
return HttpResponse('index1')
セッションでの店舗名が 'request.user'だけで正常に動作しますなぜ?また、 '' django.contrib.sessions ''を 'INSTALLED_APPS'設定に追加する必要があります。 – wmorrell
settings.pyはデフォルトでそれを持っています。 – 244boy
次に、@ aircraftが投稿した内容に従って、セッション用にデフォルトのデータベースストレージを使用する場合は、移行を実行する必要があります。 – wmorrell