【问题标题】:How to use date based generic view in django?如何在 django 中使用基于日期的通用视图?
【发布时间】:2013-06-21 21:30:06
【问题描述】:

我想根据对象拥有的日期时间信息显示对象。我的模型如下所示:

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 对发送的可选参数。但我似乎不明白的是,我怎样才能将referenceyearmonthdayreg_time 放入字典的key: value 对中。我的意思是说,它显然不会识别year 是对的吗?那么从哪里可以得到参考呢?我听起来很困惑吗?我真的是。非常感谢您帮助清除它。

更新:

我意识到一件事。 date 真的会被包裹在 request 中。因为用户会请求URL 对吗?所以可能我需要从请求正文中提取year monthday 的值。那么这该怎么做呢?

【问题讨论】:

标签: python django django-generic-views


【解决方案1】:

这取决于,如果是 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

【讨论】:

    猜你喜欢
    • 2012-01-28
    • 2012-02-27
    • 2012-06-09
    • 2011-08-06
    • 2013-04-02
    • 2010-10-14
    • 2011-09-09
    • 1970-01-01
    • 2011-07-29
    相关资源
    最近更新 更多