您能告诉我为什么在我的模板中显示"fav“时出现这个错误信息吗?
QuerySet object has no attribute game_id我试着用game,id_game来代替game_id,但是什么都没有...
view.py
from django.contrib import messages
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render
from start.models import Games, FavoriteGames
import urllib, json
def view_recap(request):
if request.user.is_authenticated():
username = request.user.username
id_user = request.user.id
fav = FavoriteGames.objects.filter(user_id=id_user).game_id
return render(request, 'recap.html', locals())
else:
from start.views import view_logoff
from start.views import view_logon
messages.add_message(request, messages.INFO, 'Vous devez être connecté pour accéder à cette page.')
return redirect(view_logon)models.py
from django.db import models
from django.conf import settings
# Create your models here.
class Games(models.Model):
guid = models.CharField(max_length=100, unique=True, null=False, verbose_name="GUID")
title = models.CharField(max_length=100, null=False, verbose_name="Titre")
logo = models.CharField(max_length=100, null=True, blank=True, verbose_name="Logo")
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")
def __str__(self):
return self.title
class FavoriteGames(models.Model):
game = models.ForeignKey('Games')
user = models.ForeignKey(settings.AUTH_USER_MODEL)发布于 2017-05-31 20:36:49
当您遍历查询集时,您可以访问每个实例的game_id。您不能在查询集上访问它。
您可以遍历视图中的查询集,
favs = FavoriteGames.objects.filter(user_id=id_user)
for fav in favs:
game_id = game_id或在模板中:
{% for fav in favs %}
{{ fav.game_id }}
{% endfor %}如果您只需要查询集中的game_ids,则可以使用values_list
game_ids = FavoriteGames.objects.filter(user_id=id_user).values_list('game_id', flat=True)发布于 2017-05-31 20:33:25
filter将返回Queryset.So,使用get而不是filter。如果有多个对象,则使用filter,但需要遍历查询集以获取每个对象。
https://stackoverflow.com/questions/44284850
复制相似问题