如何在 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 进行反向操作的主要内容,如果未能解决你的问题,请参考以下文章

主键对数据更新的影响

如何在 Django 模型中存储任意名称/值键对?

如何使用modalForm包将javascript整数变量作为主键传递到django url

sql 附加主键对现有-table.sql

使用字典中的键对对象数组进行排序

hibernate one-to-many 和 many-to-one