【发布时间】:2018-01-07 09:25:28
【问题描述】:
当我使用以下代码使用基于函数的视图时:
从 django.views 导入视图 from django.views.generic import TemplateView, ListView
from .models import Restaurant
def restaurant_listview(request):
template = 'restaurants/restaurants_list.html'
context = {
"queryset" : Restaurant.objects.order_by('-updated')
}
return render (request, template, context)
它正在使用如下保存的 url 文件:
from django.conf.urls import url
from django.contrib import admin
from restaurants import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^restaurants/$', views.restaurant_listview),
]
但是当我尝试对基于类的视图做同样的事情时,它不起作用,只有以下部分似乎不起作用:
<ul>
{% for obj in queryset %}
<li>{{obj.name}}, {{obj.location}}, {{obj.category}}, {{obj.timestamp}}</li>
{% endfor %}
</ul>
以下部分工作正常:
{% extends 'base.html' %}
{% block title %}
Restaurants List {{ block.super }}
{% endblock %}
{% block content %}
<h1>Restaurants</h1>
对于基于类的视图,我的 views.py 是:
class RestaurantListView(ListView):
queryset = Restaurant.objects.all()
template_name = 'restaurants/restaurants_list.html'
而 urls.py 是:
url(r'^restaurants$', RestaurantListView.as_view(), name='Home')
附:我正在关注本指南:https://www.youtube.com/watch?v=yDv5FIAeyoY&t=25471s
【问题讨论】:
标签: django django-views