我一直在尝试 django 基于日期的通用 View
但没有成功。文档没有给出示例,所以我还没有很好地理解它们。这个tutorial这里展示了如何对具有 slug 字段
的模型使用通用 View 。
文档说
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
它说没有找到。请帮忙
最佳答案
出于某种原因,您似乎正在查看object_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')),
)
也就是说,您根本不应该使用旧的基于函数的 View - 它们已被基于类的 View 所取代,这就是为什么它们只能通过“基于函数的链接”访问通用 View (已弃用)”。请参阅the documentation关于新风格。
关于django - 如何使用 django 基于日期的通用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643770/