django / python:通过** kwargs

时间:2018-09-19 16:09:41

标签: python django

我想建立一个网址。我的函数在结果中添加了单词kwargs,但不应该。

custom_redirect('mieteinheit', kwargs={"wohnungsgruppenname": form.cleaned_data["wohnungsgruppenname"]})

def custom_redirect(url_name, *args, **kwargs):
    #some code is passed
    "?%s" % urllib.parse.urlencode(kwargs)

这将创建:

?kwargs=%7B%27wohnungsgruppenname%27%3A+%27ghs%27%7D

但是它应该创建

?wohnungsgruppenname%3Dwohnungsgruppenname

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您误解了关键字参数的使用方式。

与其像以前那样调用函数,不如尝试以下方法:

custom_redirect(
    'mieteinheit', 
    wohnungsgruppenname=form.cleaned_data["wohnungsgruppenname"])

这样,“ wohnungsgruppenname”一词将成为字典kwargs中的键。这样做的方式会创建一个嵌套的字典,而不是您想要的。


请参阅this answer,以详细了解kwargs的工作原理。