簡體   English   中英

基於用戶名的django注銷用戶

[英]django logout user based on username

我正在嘗試強制注銷不再活動的django用戶。我需要能夠通過用戶名強制用戶注銷。 經過一些研究后,我發現django可以通過使用logout(request)來注銷,但是沒有提供選擇基於用戶名的注銷的選項。 有人知道嗎? 謝謝

我已經嘗試針對我的問題測試以下代碼,該問題來自如何在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()

但是我現在有以下錯誤:

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

這主要取決於您如何進行身份驗證。 不完全知道就不可能給您答案。

但是,假設您使用的是默認的Django身份驗證,則此答案仍應有效:

如何在django中強制用戶注銷?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM