كيفية تخصيص عنوان 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 Regex الخاص بك، كل شيء في <brackets>
يتم تمريره إلى العرض العام كوسيطة الكلمات الرئيسية.
المشكلة هي أن العرض العام الذي تستخدمه (object_detail
) لا يدعم كل هذه الحجج (وهي، category
).
مزيد من المعلومات حول وجهة نظر Object_Detail العامة والحجج التي يقبلها.
إذا كنت بحاجة إلى category
حجة، فقط لف وجهة النظر كما اقترح نيك أعلاه واتصل بذلك من Urlconf الخاص بك.
لا تنتمي إلى StackOverflow