在Django2.1中,我试图真正地伪造一个GET请求,它将在重定向之后以最干巴巴的方式作为有效的形式进行解析。你知道吗
基本上,我在一个视图中(some_view
下面),我想生成一个GET请求,而不必事先知道表单字段的序列化方式。你知道吗
path( r'select/', views.filtered_view, name='filter-view' )
path( r'save/', views.save_view, name='save-view' )
# a form class with 'non-trivial' fields (e.g. not ints)
class FilterForm(forms.Form):
date = forms.DateInput()
user = forms.ModelChoiceField(queryset=User.objects.all())
def filtered_view( request ):
filter_form = FilterForm(request.GET)
# do something with the form...
# another view somewhere
def some_view(request):
# this view does not contains GET or POST parameters related to FilterForm.
...
user = User.objects.get( some_filter )
date = compute_some_datetime_date_object
# generates here a GET request that will instantiate the FilterForm
# correctly
someargs = ...
return redirect( 'filter-view' + someargs )
我知道我可以做一些像(跳过urllib.parse.urlencode…):
return redirect( 'filter-view' ) + \
'?user='+ str(user_object.id) + \
'&date' + date.strftime('%Y-%m-%d')
但它假设我知道pk用于传递user对象(取决于表单),并且我还知道用于日期的格式。。。你知道吗
我想做的是:
ff = FilterForm(data={'user':user_object,'date':date})
return redirect( 'filter-view' ) + ff.as_url_parameters()
谢谢你的帮助。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐