我一直在尝试django date based generic views
,但没有成功。文档没有给出一个例子,所以我没有理解它们。此处tutorial显示了如何对具有slug field
。
文档说
Either object_id or (slug and slug_field) is required.
但我还不明白实际上是怎么做到的。我的models.py包含
class CompanyActivity(models.Model):
company = models.CharField(max_length=300)
desc = models.TextField()
text = models.TextField()
date = models.DateTimeField()
activity_type = models.CharField(max_length=600)
和我的urls.py包含
info_dict = {
'queryset': CompanyActivity.objects.all(),
'date_field': 'date',
}
urlpatterns+= patterns('django.views.generic.date_based',
url(r'^activity/(?P<year>d{4})/(?P<object_id>\d+)/$','object_detail', dict(info_dict,object_id='id',template_name='activity/detail.html')),
)
我知道urls.py
我不知道如何传递object_id有什么问题,我打算做的是我要显示特定年份的活动页面。同年,同一家公司可以有多个活动页面。
当我查找此页面时
http://127.0.0.1:8000/activity/2011/1
它说未找到。请帮忙
答案 0 :(得分:3)
出于某种原因,您似乎在查看object_detail
的信息。顾名思义,这是针对特定对象的 detail (基于日期),因此与您的问题无关,即如何获取特定年份的活动列表。同样不足为奇的是,您正在寻找的功能是archive_year
:
urlpatterns+= patterns('django.views.generic.date_based',
url(r'^activity/(?P<year>d{4})/$','archive_year',
dict(info_dict, template_name='activity/detail.html')),
)
那就是说,你根本不应该使用旧的基于函数的视图 - 它们已经被基于类的视图所取代,这就是为什么它们只能通过“基于函数”的链接访问通用视图(已弃用)“。有关新款式的信息,请参阅the documentation。