Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django应用程序中修复此属性错误?_Python_Django_Middleware - Fatal编程技术网

Python 如何在Django应用程序中修复此属性错误?

Python 如何在Django应用程序中修复此属性错误?,python,django,middleware,Python,Django,Middleware,我正在开发一个Django应用程序,我已经创建了一个用户可以向上或向下投票电影的地方,问题是当我按下其中一个按钮时,会出现以下错误: in likesDislikesPelicula voto = Likes.objects.filter(usuario=request.Usuarioclte, pelicula__pk=idpelicula) AttributeError: 'WSGIRequest' object has no attribute 'Usuarioclte' 我的观点 d

我正在开发一个Django应用程序,我已经创建了一个用户可以向上或向下投票电影的地方,问题是当我按下其中一个按钮时,会出现以下错误:

in likesDislikesPelicula
voto = Likes.objects.filter(usuario=request.Usuarioclte, pelicula__pk=idpelicula)

AttributeError: 'WSGIRequest' object has no attribute 'Usuarioclte'
我的观点

def detallesPelicula(request, pelicula_id):
    peliculas = get_list_or_404(Pelicula.objects.order_by('titulo'))
    pelicula = get_object_or_404(Pelicula, pk=pelicula_id)
    actor = get_list_or_404(Actor.objects)
    likes = conteolikes(pelicula)
    dislikes = conteodislikes(pelicula)
    context = {
        'pelicula': pelicula,
        'peliculas': peliculas,
        'likes': likes,
        'dislikes': dislikes
    }
    return render(request, 'detallesPelicula.html', context)

def conteolikes(pelicula):
        return pelicula.users_vote.filter(valor__gt=0).count()

def conteodislikes(pelicula):
        return pelicula.users_vote.filter(valor__lt=0).count()

@csrf_exempt
def likesDislikesPelicula(request):
      if request.method == 'POST':
          idpelicula= request.POST.get('idpelicula','')
          valor = request.POST.get('valor','')
          try:
             voto = Likes.objects.filter(usuario=request.Usuarioclte, pelicula__pk=idpelicula)
             print("Existe")
             print(voto)
          except  Likes.DoesNotExist:
             print("No existe")
my models.py(简化版)

注意:用户由Django身份验证系统获取和存储,而不是存储在我创建的表中

我已经看到is必须与
中间件
中间件类
做一些事情,我已经尝试过改变它,但仍然不起作用

我的中间件位于
setting.py

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.middleware.locale.LocaleMiddleware', #i18n
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

如果在设置文件中正确设置了
User
模型(例如
AUTH\u User\u model='users.Usuarioclte'
)然后您只需调用
request.user
而不是
request.Usuarioclte
,它将是您的
Usuarioclte
模型对象。如果我添加AUTH\u user\u model='users.Usuarioclte'并更改为request.user,则会出现以下错误:“AUTH\u USER\u MODEL指的是尚未安装的模型“%s”%settings.AUTH\u USER\u MODEL django.core.exceptions.ImpropertlyConfigured:AUTH\u USER\u MODEL指的是尚未安装的模型“users.Usuarioclte”,声明了您的模型
Usuarioclte
?在
'users.Usuarioclte'
中使用它的名称而不是
用户
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.middleware.locale.LocaleMiddleware', #i18n
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]