0

アクティブではないdjangoユーザーのログアウトを強制しようとしています。ユーザー名でユーザーログアウトを強制する必要があります。いくつかの調査をした後、私はdjangoがログアウト(要求)を使ってログアウトするオプションを持っているが、ユーザ名ベースのログアウトを選択するオプションはないということを発見しました。 誰もが考えている?ユーザー名に基づくdjangoログアウトユーザー

from django.contrib.auth.models import User 
from django.db import models 
from datetime import datetime 

class MyUser(User): 
force_logout_date = models.DateTimeField(null=True, blank=True) 

def force_logout(self): 
    self.force_logout_date = datetime.now() 
    self.save() 

は、その後、私は私のviews.pyにこの部分を追加しました::

from myapp.models import MyUser 
MyUser.objects.get(username='johndoe').force_logout() 
おかげ

は、私は私のモデルではHow to force user logout in django? から撮影された私の問題のために、この次のコードをテストしようとしています今

しかし、私は、次のしているエラー:

MyUser matching query does not exist. 

Request Method:  POST 
Request URL: http://localhost:8000/datatableuser/?  
typeoftask=edit&username=xyzstaff 
Django Version:  1.8.11 
Exception Type:  DoesNotExist 
Exception Value:  

MyUser matching query does not exist. 

Exception Location:  /usr/local/lib/python2.7/dist- 
packages/django/db/models/query.py in get, line 334 
Python Executable: /usr/bin/python 
Python Version:  2.7.6 
Python Path:  

['/home/paul/Desktop/djangoproject/peptidetrackerdatabase/src', 
'/usr/local/lib/python2.7/dist-packages/setuptools-20.3.1-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/pip-8.1.1-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/Sphinx-1.4-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/imagesize-0.7.0-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/alabaster-0.7.7-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/Babel-2.2.0-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/snowballstemmer-1.2.1-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/docutils-0.12-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/Pygments-2.1.3-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/Jinja2-2.8-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/MarkupSafe-0.23-py2.7-linux-x86_64.egg', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client'] 

Server time: Thu, 14 Apr 2016 22:12:42 -0700 enter code here 

答えて

0

ほとんどの場合、認証方法によって異なります。あなたが正確にそれを知らずに答えを与えることは不可能です。

しかし、あなたはデフォルトDjangoの認証を使用していると仮定して、この答えはまだ有効でなければなりません:あなたの応答のための

How to force user logout in django?

+0

こんにちは感謝。私はこの解決策を見ましたが、Session.objects.all()が常に空のリストを返すので、それを実装する方法をまだ理解できませんでした。なぜか分かりません。 – Paul85

+0

@ Paul85 'django.contrib.sessions'があなたのインストールされているアプリケーションでは、あなたのアクティブ化されたミドルウェアの 'django.contrib.sessions.middleware.SessionMiddleware'にログインすることができ、移行が適用されます。さらに、セッションテーブルが存在し、空ではないことをデータベースで手動で確認してください。 –

+0

私はチェックして、私のsettings.pyは大丈夫です。 – Paul85

関連する問題