日付ベースの汎用ビューのURLをカスタマイズする方法?
-
13-09-2019 - |
質問
ここに私の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'
私を助けてください。ありがとう!
解決
私は、このような何か(未テスト)
あなたは、一般的な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
でそれを行うことは可能かもしれませんが、私は知らない - 私は非常にまれ汎用ビューを使用しない
他のヒント
あなたのURLの正規表現では、<brackets>
ですべてがキーワード引数として汎用ビューに渡さ取得されます。
問題は、あなたが(object_detail
)を使用している一般的なビューは、これらの引数(すなわち、category
)のすべてをサポートしていないということです。
object_detail汎用ビューと、それが受け入れる引数の詳細について。の
あなたはcategory
引数が必要な場合は、ちょうどニックは、上記の提案としてビューをラップし、あなたのURLconfからそれを呼び出します。
所属していません StackOverflow