Django当前用于“ from django.views.generic import list_detail”是什么?


问题内容

在理解“ from django.views.generic import list_detail”已从Django中弃用和/或删除之后,我是否理解正确?

如果是这样,合适的继任者是什么?

谢谢,

-

@加雷斯,谢谢。

我有一个后续问题要问:如何使用ListView替换list_detail.object_detail?

当前代码(仅在导入中已更改)为:

from django.conf.urls.defaults import *
#from django.views.generic import list_detail
from django.views.generic.list import ListView

from announcements.models import Announcement
from announcements.views import *


announcement_detail_info = {
    "queryset": Announcement.objects.all(),
}

urlpatterns = patterns("",
    url(r"^(?P<object_id>\d+)/$", list_detail.object_detail,
        announcement_detail_info, name="announcement_detail"),
    url(r"^(?P<object_id>\d+)/hide/$", announcement_hide,
        name="announcement_hide"),
    url(r"^$", announcement_list, name="announcement_home"),
)

https://docs.djangoproject.com/zh-CN/dev/ref/class-based-views/generic-
display/#listview
似乎并不建议对以下内容进行单个内联替换:

    url(r"^(?P<object_id>\d+)/$", list_detail.object_detail,
        announcement_detail_info, name="announcement_detail"),

如果有的话,它建议添加一个附加模型,并在该模型的基础上进行构建。

是否可以快速内联替换list_detail.object_detail调用,还是需要更多的连根拔起?

谢谢,


问题答案:

django.views.generic.list_detail在Django
1.3
已弃用

从Django 1.3开始,不赞成使用基于函数的通用视图,而倾向于基于类的方法。

使用django.views.generic.list.ListView代替。