我的应用程序具有以下网址条目:
url(r'^(?P<pk>\d+)/(?P<action>add|edit)/type/$', 'customer.views.edit', name='customer-edit'),
我想反向发布到该网址。当我执行以下操作时,出现错误NoReverseMatch:
self.client.post(reverse('customer-edit'), {'something:'something'}, follow=True)
这是完整的错误:
NoReverseMatch:找不到带有参数'()'和关键字参数'{}'的'customer-edit'。
我需要将args或kwargs反向传递吗?如果是这样,他们将如何匹配上面的网址?
最佳答案
要将args
传递给url,您可以将args
类型的名为tuple
的变量传递给reverse
:
self.client.post(reverse('customer-edit', args=(1, 'add',)), {'something:'something'}, follow=True)
另一个问题是
dict
具有Syntax Error
self.client.post(reverse('customer-edit', args=(1, 'add',)), {'something' : 'something'}, follow=True)
希望这对您有所帮助!
关于python - 如何在Django中使用主键对URL进行反向操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17690092/