我有以下views.py:user_logged_in_handler()恰恰3個參數(2給出)在Django
from django.template import loader
from django.http import HttpResponse
from django.shortcuts import get_object_or_404
from django.contrib.auth.decorators import login_required
from student.models import CustomUser
from student.forms import UserForm
from django.template.context_processors import csrf
from django.shortcuts import render_to_response
from django.contrib.auth.signals import user_logged_in
from .models import UserSession
def user_logged_in_handler(sender,request,CustomUser,**kwargs):
UserSession.objects.get_or_create(
user=CustomUser,
session_id= request.session.session_key
)
user_logged_in.connect(user_logged_in_handler)
def delete_user_sessions(CustomUser):
user_sessions=UserSession.objects.filter(user=CustomUser)
for user_session in user_sessions:
user_session.session.delete()
我有以下models.py:
class UserSession(models.Model):
user= models.ForeignKey(settings.AUTH_USER_MODEL)
session=models.ForeignKey(Session)
另外,在模型。 py我有類CustomUser(AbstractUser)。當我嘗試訪問/管理什麼是錯誤的,我views.py的錯誤說/
user_logged_in_handler() takes exactly 3 arguments (2 given)
完整的models.py如下: //models.py
from django.utils import timezone
from django.conf import settings
from django.contrib.auth.models import AbstractUser
from django.utils.translation import ugettext_lazy as _
from django.contrib.sessions.models import Session
class CustomUser(AbstractUser):
addr1= models.CharField(max_length=20)
addr2= models.CharField(max_length=20)
city= models.CharField(max_length=20)
state= models.CharField(max_length=20)
country= models.CharField(max_length=20,choices=country_choices)
pincode= models.IntegerField(default=0,blank=True,null=True)
securityq= models.CharField(max_length=20)
securitya= models.CharField(max_length=20)
class userresp(models.Model):
uid=models.ForeignKey(settings.AUTH_USER_MODEL,blank=True,null=True)
resp=models.CharField(max_length=20)
datetime=models.DateTimeField(default=timezone.now)
def __unicode__(self):
return u"{} {}".format(self.uid,self.datetime)
class Meta:
db_table="userresp"
class UserSession(models.Model):
user= models.ForeignKey(settings.AUTH_USER_MODEL)
session=models.ForeignKey(Session)
Django的版本? –
版本1.8 ...現在 – Shefali