Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Django ';QuerySet';对象没有属性_Django_Django 1.11 - Fatal编程技术网

Django ';QuerySet';对象没有属性

Django ';QuerySet';对象没有属性,django,django-1.11,Django,Django 1.11,请告诉我为什么在我的模板中显示“fav”时出现此错误消息 QuerySet object has no attribute game_id 我试图用game替换game\u id,id\u game但是什么都没有 view.py from django.contrib import messages from django.conf import settings from django.contrib.auth.models import User from django.contrib.a

请告诉我为什么在我的模板中显示“fav”时出现此错误消息

QuerySet object has no attribute game_id
我试图用
game
替换
game\u id
id\u game
但是什么都没有

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)

filter
将返回
Queryset
。因此使用
get
而不是
filter
。如果存在多个对象,请使用
过滤器
,但您需要循环查询集以获取每个对象。

当您循环查询集时,您可以访问每个实例的
游戏id
。您无法在queryset上访问它

您可以在视图中循环查询集

favs = FavoriteGames.objects.filter(user_id=id_user)

for fav in favs:
    game_id = game_id
或在模板中:

{% for fav in favs %}
  {{ fav.game_id }}
{% endfor %}
如果您只需要查询集中的
游戏ID
,您可以使用:


过滤器返回多个结果。所以我想我需要它。Get只返回1个结果,因此我有一个错误,告诉您结果太多。这是Get:Get()返回多个FavoriteGames的错误消息—它返回了2!因此,将有多个
game\u id
。因此
FavoriteGames.objects.filter(user\u id=id\u user)。value\u list(game\u id,flat=True)
将获得我拥有的所有game\u id:语法错误:标识符中的无效字符。我不知道这是什么意思?谢谢你@Alasdair
game_ids = FavoriteGames.objects.filter(user_id=id_user).values_list('game_id', flat=True)