要通过名称或View_name反向查找网址,我们将在下面的视图中使用反向功能
reverse("calendarviewurl2", kwargs={"year":theyear,"month":themonth})
和反向函数签名如下
http://code.djangoproject.com/browser/django/trunk/django/core/urlresolvers.py
def reverse(self, lookup_view, *args, **kwargs)
我的问题与kwargs有关
当我们想要将字典作为关键字参数发送时,我们应该使用以下语法 摘录1
kwargs={"year":2009,"month":9}
reverse("name",**kwargs)
而不是下面的代码
摘录2
reverse("name",kwargs={"year":2009,"month":9})
所以我的问题是
答案 0 :(得分:9)
你没看过signature,
def reverse(viewname, urlconf=None, args=None, kwargs=None,
prefix=None, current_app=None):
根本不需要**kwargs
。
kwargs={"year":2009,"month":9}
reverse("name",**kwargs)
表示
reverse("name", year=2009, month=9)
与
完全不同reverse("name",kwargs={"year":2009,"month":9})
当一个函数确实占用**kwargs
时,两种方法都是相同的。但事实并非如此。反向看起来像是**kwargs
:
def reverse(viewname, urlconf=None, prefix=None,
current_app=None, *args, **kwargs):