调用django视图以返回另一个视图的结果
我有两个视图,定义如下:
class ListResultView(LoginRequiredMixin, ListView):
model = Result
class GalleryView(LoginRequiredMixin, ListView):
model = Result
template = 'gallery.html'
context_object_name = 'gallery'
ListResultView() 使用隐式定义的 result_list.html 作为模板,而 result 被隐式定义为上下文模型。另一方面,GalleryView(这是同样数据的更美观的列表)使用显式定义的模板 'gallery.html',上下文对象被定义为 'gallery'。
我通过以下 urls.py 来调用它们(这是主要的 urls.py,不是包含的那个):
from django.conf.urls import patterns, include, url
import lc.views
from django.views.generic import TemplateView
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', TemplateView.as_view(template_name="about.html"),
name='indexpage'),
url(r'^gallery/$', lc.views.GalleryView.as_view(), name='gallery'),
url(r'^admin/', include(admin.site.urls), name='admin'),
url(r'^listquery/', lc.views.ListCView.as_view(),
name='s_queries',),
url(r'^listresult/', lc.views.ListResultView.as_view(),
name='s_results',),
url(r'^new/', lc.views.CreateCQuery.as_view(),
name='query_new',),
url(r'^login/$', 'django.contrib.auth.views.login', name='login'),
url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/login'}, name='logout'),
url(r'^deletes/(?P<pk>\d+)/$', lc.views.DeleteS.as_view(), name='delete_s'),
url(r'^deleter/(?P<pk>\d+)/$', lc.views.DeleteResult.as_view(), name='delete_result'),
url(r'^resultview/(?P<pk>\d+)/$', lc.views.ResultDetailView.as_view(),
name='resultview'),
url(r'^notyet', TemplateView.as_view(template_name="not_impl.html"), name="notyet",),
)
我遇到的问题是,当我调用 GalleryView 的网址时,却得到了 ListResultView 的响应。我没有看到任何错误信息,不知道有没有人能告诉我我哪里出错了,或者该如何调试。目前我在考虑放弃基于类的视图,改写成基于函数的视图,这样我可以更清楚地了解发生了什么,但由于时间紧迫,我更希望不这样做。
1 个回答
1
在你的 GalleryView
中,把 template
改成 template_name
。