Django:向视图中的请求添加可选参数
Posted
技术标签:
【中文标题】Django:向视图中的请求添加可选参数【英文标题】:Django: Add optional parameters to a request in the view 【发布时间】:2018-06-08 21:59:24 【问题描述】:在我的 Django 应用程序的 views.py
中,我将 GET 请求传递给函数定义。如何检查该请求中的可选参数(如&optional='All'
),如果缺少该可选参数,请添加它。这都是在请求被发送到要渲染的模板之前。
这是我目前所拥有的:
def my_function(request):
#get all the optional parameters
optional_params_list = request.GET.keys()
#see if filter_myfilter is NOT an optional param
if 'filter_myfilter' not in optional_params_list:
#add filter_myfilter as a parameter and set it equal to All
request.filter_myfilter = 'All'
return render(request, 'quasar.html')
【问题讨论】:
Capturing url parameters in request.GET的可能重复 【参考方案1】:在您的视图中,您可以访问request.GET
,您可以使用它为该视图中的特定 URL 设置新值。正如您所提到的,将 optional
值添加到 GET 参数是可能的。因此,如果值 optional
丢失或不等于 All
,我们可以继续将用户重定向到正确的视图。
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
def my_function(request):
param = request.GET.get('param','All')
if param != 'All':
return HttpResponseRedirect(reverse('url_name') + "?optional=All")
# or
# return HttpResponseRedirect(request.path + "?optional=All")
return render(request, 'quasar.html')
【讨论】:
以上是关于Django:向视图中的请求添加可选参数的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个带有可选辅助 View 参数的 SwiftUI 视图?