如何在django中使用基于日期的通用视图?

时间:2013-06-25 07:16:14

标签: python django django-generic-views

我想根据他们拥有的日期时间信息显示对象。我的模型看起来像这样:

models.py

class Person(models.Model):
    name = models.CharField(max_length=50)

class Registration(models.Model):
    name = models.ForeignKey(Person)
    reg_id = models.IntegerField()
    reg_date = models.DateTimeField(db_index=True)
    reg_type = models.CharField(max_length=50)
    description = models.CharField(max_length-200)

urls.py

from app.models import Registration
from dajngo.views.generic.date_based import archive_day

queryset = registration.objects.all()


urlpatterns = patterns('',
    url(r'^$', 'ui.views.index'),
    url(r'^registrations/(?P<person_name>)\w+)/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$', archive_day, {'year': year, 'month': month, 'day': day, 'queryset': queryset, 'date_field': reg_date})
)

)

我的意图:

我希望在特定日期以个人名义显示所有注册。是的,一个人可以有多个注册。

我知道我错了:

我阅读了文档,但对于像我这样的新手来说并不是很方便。虽然我发现他们是这些必需的参数和一些可选的,需要作为key: value对发送。但我似乎不明白的是,我如何reference yearmonthdayreg_time进入key: value一对字典。我的意思是说,显然它不会识别year是对的?那么从哪里可以获得参考?我听起来很困惑吗?我真的是。一些帮助清除它将非常感激。

更新

我有一件事意识到。 date实际上将包含在request内。因为用户要求URL对吗?所以我可能需要从请求体中提取year monthday的值。那怎么能这样做呢?

1 个答案:

答案 0 :(得分:0)

嗯,这取决于,如果它是CBV那么:

self.kwargs['year']

如果是视图功能,那么:

def my_view(request, year, month, day):
    ...

https://docs.djangoproject.com/en/1.5/topics/http/urls/#notes-on-capturing-text-in-urls