当前Django中“from django.views.generic import list_detail”是什么?
我理解得对吗?“from django.views.generic import list_detail”这个东西在Django里已经不再使用或者被删除了?
如果是这样的话,那现在应该用什么来替代呢?
谢谢,
--
@Gareth,谢谢你。
我还有个后续问题:怎么用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/en/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的调用,还是说需要更大的改动呢?
谢谢,
2 个回答
8
在导入了 django.views.generic.list.ListView
之后,
你只需要把 list_detail.object_detail
改成 ListView.as_view()
就可以了。
10
django.views.generic.list_detail
在 Django 1.3 版本中被 弃用了:
从 Django 1.3 开始,基于函数的通用视图不再推荐使用,取而代之的是基于类的方法。