Python Django:理解For循环中对象的问题
我是Django的初学者。我正在构建一个名为PhoneReview的Django应用程序。它将存储与最新手机相关的评论。它还将显示手机品牌以及相关的手机型号。我已经设法做了一些保护的应用程序。现在,我对一行代码有点困惑 我的一个模板文件中有这样的代码: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
{% 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如何工作的介绍,那里的许多事情不能仅仅从常识中推导出来。谢谢你的解释。它澄清了一切!