如何在 django 中使用主键对 url 进行反向操作
Posted
技术标签:
【中文标题】如何在 django 中使用主键对 url 进行反向操作【英文标题】:how to do a reverse on a url with primary key in django 【发布时间】:2013-07-15 10:24:37 【问题描述】:我的应用有以下 url 条目:
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:未找到带有参数“()”和关键字参数“”的“客户编辑”的反向。
我需要将 args 或 kwargs 传递给反向吗?如果是这样,它们会是什么样子与上面的 url 匹配?
【问题讨论】:
【参考方案1】:要将args
传递给url,您可以将tuple
类型的名为args
的变量传递给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)
希望对您有所帮助!
【讨论】:
以上是关于如何在 django 中使用主键对 url 进行反向操作的主要内容,如果未能解决你的问题,请参考以下文章