在django中为URL添加查询字符串

Dav*_*542 23 django

我有一个调用另一个函数的函数,并将查询字符串传递给URL的末尾.

我将如何完成以下任务 -

if my_videos:
    return render(request, template, {kwargs}) + "?filter=others&sort=newest"
Run Code Online (Sandbox Code Playgroud)

注意:我不在乎是否使用渲染,它的用途仅仅是指出我想要完成的任务.谢谢.

Dav*_*542 31

在模板中传递查询字符串:

<a href="{% url my_videos %}?filter=others&sort=newest">My Videos</a>
Run Code Online (Sandbox Code Playgroud)


Ahs*_*san 11

from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect


if my_videos:
    return HttpResponseRedirect( reverse('my_videos') + "?filter=others&sort=newest")
Run Code Online (Sandbox Code Playgroud)


ber*_*uic 6

我不确定在询问此问题时是否可能这样做,但是如果您有可用于在视图中构建查询字符串的数据并将其作为上下文传递,则可以使用QueryDict类.构造它之后,你可以调用它的urlencode函数来创建字符串.

例:

from django.http import QueryDict

def my_view(request, ...):
    ...
    q = QueryDict(mutable=True)
    q['filter'] = 'other'
    q['sort'] = 'newest'
    q.setlist('values', [1, 2, 'c'])
    query_string = q.urlencode()
    ...
Run Code Online (Sandbox Code Playgroud)

query_string 现在将有价值 u'filter=other&sort=newest&values=1&values=2&values=c'


Udi*_*Udi 5

以下是两个用于修改模板内查询字符串参数的智能模板标签: