Python Django:理解For循环中对象的问题

Python Django:理解For循环中对象的问题,python,django,Python,Django,我是Django的初学者。我正在构建一个名为PhoneReview的Django应用程序。它将存储与最新手机相关的评论。它还将显示手机品牌以及相关的手机型号。我已经设法做了一些保护的应用程序。现在,我对一行代码有点困惑 我的一个模板文件中有这样的代码: {% extends 'gamereview/base.html' %} {% block title%} Detail {% endblock %} {% block content %} <h3>This is the r

我是Django的初学者。我正在构建一个名为PhoneReview的Django应用程序。它将存储与最新手机相关的评论。它还将显示手机品牌以及相关的手机型号。我已经设法做了一些保护的应用程序。现在,我对一行代码有点困惑

我的一个模板文件中有这样的代码:

{% extends 'gamereview/base.html' %}

{% block title%}
Detail
{% endblock %}


{% block content %}

<h3>This is the review for {{game.title}} </h3>

<ul>{% for review_item in game.review_set.all %}
    <li>{{ review_item.review }}</li>
    {% endfor %}
</ul>

{% endblock %}
以下是视图.py中的代码:

from django.views import generic
from .models import Game


class GameListView(generic.ListView):
    template_name = 'gamereview/gamelist.html'
    context_object_name = 'all_games'

    def get_queryset(self):
        return Game.objects.all()

class ReviewView(generic.DetailView):
    model = Game
    template_name = 'gamereview/review.html'
from . import views
from django.urls import path

app_name = 'gamereview'

urlpatterns = [
    path('gamereview/', views.GameListView.as_view(), name='gamelist'),
    path('gamereview/<slug:slug>/', views.ReviewView.as_view(), name='review'),

]
以下是URL.py中的代码:

from django.views import generic
from .models import Game


class GameListView(generic.ListView):
    template_name = 'gamereview/gamelist.html'
    context_object_name = 'all_games'

    def get_queryset(self):
        return Game.objects.all()

class ReviewView(generic.DetailView):
    model = Game
    template_name = 'gamereview/review.html'
from . import views
from django.urls import path

app_name = 'gamereview'

urlpatterns = [
    path('gamereview/', views.GameListView.as_view(), name='gamelist'),
    path('gamereview/<slug:slug>/', views.ReviewView.as_view(), name='review'),

]
来自。导入视图
从django.url导入路径
应用程序名称='gamereview'
URL模式=[
路径('gamereview/',views.GameListView.as_view(),name='gamelist'),
路径('gamereview/',views.ReviewView.as_view(),name='review'),
]

我有点被这句话弄糊涂了:
    {%forreview\u game.review\u set.all%}
。请你帮我澄清一下好吗?

看看
型号
;有一个
游戏
课程。显然,您在模板中收到一个名为
game
的类实例

Game
类被
Review
类引用为外键。由于Django ORM的工作方式,它提供了
游戏
类反向链接
;它包含引用特定游戏的所有审阅对象。因此
游戏。查看设置

.review\u set
属性不是一个列表,而是一个DB结果集。您可以对其进行筛选、排序等,但您只需从中获取所有记录。因此
游戏。查看设置。全部


请花些时间阅读Django如何工作的介绍,那里的许多事情不能仅仅从常识中推导出来。

谢谢你的解释。它澄清了一切!