2
我试图将Django的时间表到我的项目。 Django的时间表的来源是here。我不喜欢这些网址,因为它们都捕获了一个slu。。我的项目只允许每个用户使用一个日历,所以捕获slu it没有意义。所以,我包了Django的时间表的看法是这样的(查找使用当前用户的蛞蝓,并把它传递给Django的日程安排的意见):Django的 - 倒车包裹视图功能
from schedule.views import calendar_by_periods
from schedule.models import Calendar
from schedule.periods import Month
def cal_by_periods_wrapper(view):
def new_view(request, *args, **kwargs):
kwargs['calendar_slug'] = Calendar.objects.get_calendars_for_object(obj=request.user, distinction="owner")[0].slug
return view(request, *args, **kwargs)
return new_view
这里是从urls.py相关部分:
urlpatterns = patterns('',
url(r'^$',
cal_by_periods_wrapper(calendar_by_periods),
name = "month_calendar",
kwargs={'periods': [Month], 'template_name': 'schedule/calendar_month.html'}),
这工作得很好,直到它击中的模板标签中的一个包含Django的时间表,prev_url:
@register.simple_tag
def prev_url(target, slug, period):
return '%s%s' % (
reverse(target, kwargs=dict(calendar_slug=slug)),
querystring_for_date(period.prev().start))
此功能提高:
TemplateSyntaxError at /teacher/calendar/
Caught an exception while rendering: Reverse for 'month_calendar' with arguments
'()' and keyword arguments '{'calendar_slug': u'asdf'}' not found.
我如何包装这一观点,仍然使反向调用工作?
我以为这是什么名称=“month_calendar”在我的urls.py是...而且重点是,我试图摆脱url的calendar_slug。我错过了什么吗? – UrLicht 2010-01-19 21:23:19
看到我上面的编辑。 – 2010-01-19 21:38:57
好了,对不起,这是现在做了意义。我认为它所抱怨的观点是视图函数的参数,而不是URL。所以,真的,我唯一的选择是修改模板标签以不通过slug。得到它了。谢谢。 – UrLicht 2010-01-19 21:43:01