python - 如何在我的 Django 应用程序中修复此属性错误?
问题描述
我正在开发一个 Django 应用程序,并且我创建了一个用户可以对电影投赞成票或反对票的地方,问题是当我点击这些按钮之一时,会出现此错误:
in likesDislikesPelicula
voto = Likes.objects.filter(usuario=request.Usuarioclte, pelicula__pk=idpelicula)
AttributeError: 'WSGIRequest' object has no attribute 'Usuarioclte'
我的意见.py
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")
我的models.py(简体)
class Usuarioclte(models.Model):
nickname = models.CharField(max_length=50)
contraseña = models.CharField(max_length=50)
email = models.EmailField(max_length=50)
def __str__(self):
return self.nickname
class Likes(models.Model):
#necesito que usuario y pelicula sean una calve compuesta
#usuario_id= models.ForeignKey(User.id,on_delete= models.CASCADE)
pelicula = models.ForeignKey(Pelicula, on_delete=models.CASCADE, related_name = 'users_vote')
usuarioclte = models.ForeignKey(Usuarioclte, on_delete=models.CASCADE, related_name=
'likes_and_dislikes')
valor = models.IntegerField(default=0)
def __str__(self):
return self.usuarioclte.nickname
注意:用户是由 Django 身份验证系统获取和存储的,而不是在我创建的表中。
我已经看到这与MIDDLEWARE
and有关系MIDDLEWARE_CLASSES
,我试图改变它但仍然不起作用
我的中间件在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',
]
解决方案
推荐阅读
- kubernetes - 在 helm-charts 中在哪里定义环境变量?
- c# - 属性上的 MVVM Light Call 异步方法已更改?
- regex - 正则表达式模式不会在文本文件中打印多行后的单词匹配
- c++ - 如何通过派生指针调用基类中的模板成员函数
- java - JAVA:对于更新和插入,我可以使用端点或 GET 请求来处理 servlet 中的数据吗
- apache - 如何在 solr 7 中设置身份验证机制?
- java - Google Cloud BigQuery 管理员服务帐户获得“没有 bigquery.jobs.create 权限”
- python - 使用 RandomForestRegressor 出错
- node.js - session-file-store 删除过期的会话文件
- powershell-5.0 - 在 Powershell 中,有没有办法停止服务,指定等待时间,然后重新启动该服务?