所以,现在当我的 DetailView 子类没有使用 PK(取自 URL)找到对象时,我看到了 404.html 模板页面。我宁愿做的只是重定向到另一个 URL。这是我的网址模式:
url(r'^(?P<pk>[0-9]+)/$', DeviceDetailView.as_view(
template_name='devices/detail.html',
queryset=Device.objects.all(),
context_object_name="device",
)),
url(r'^$', FullListView.as_view(template_name='devices/devices.html',)),
所以,如果我的 url 看起来像 /devices/8/,它使用 8 作为主键。当数据库中存在 8 时效果很好。但是,当 8 不存在时,它会转到 404 页面。我宁愿它做的是去一个列表 - 事实上,在最后一个 url 时列出的 FullListView (当 url 看起来像 /devices/nonnumericstuff/ 时会发生这种情况。
看起来这应该很容易,不是吗?我不希望所有 404 都去那里,所以我不能使用 handler404。