我的应用程序具有以下网址条目:

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/

10-13 09:52