1

这是我的 URL 模式:

news_info_month_dict = {
    'queryset': Entry.published.filter(is_published=True),
    'date_field': 'pub_date',
    'month_format': '%m',
}

(r'^(?P<category>[-\w]+)/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[-\w]+).html$', 
    'object_detail', news_info_month_dict, 'news_detail'),

但他们有这样的错误:

object_detail() got an unexpected keyword argument 'category'

请帮我。谢谢!

4

2 回答 2

3

我认为您必须编写自己的 view 来代替 generic object_detail,就像这样(未经测试)

import datetime

def view_entry(request, category, year, month, day, slug):
    date = datetime.date(int(year), int(month), int(day))
    entry = get_object_or_404(Entry, slug=slug, date=date, is_published=True, category=category)
    return render_to_response('news_detail', {'object': entry})

虽然我不知道可能会这样做object_detail- 我很少使用通用视图。

于 2009-12-04T18:26:35.323 回答
0

在您的 URL 正则表达式中,所有内容都<brackets>作为关键字参数传递给通用视图。

问题是您使用的通用视图 ( object_detail) 不支持所有这些参数(即category)。

有关 object_detail 通用视图及其接受的参数的更多信息。

如果您需要一个category参数,只需按照 Nick 上面的建议包装视图并从您的 URLconf 中调用它。

于 2009-12-04T18:31:08.497 回答