在django中创建视图时,是否允许将POST数据作为上下文传递?那就是:
def view( request ):
#view operations here
#...
c = Context({
'POST':request.POST,
})
return render_to_response("/templatePath/", c, context_instance=RequestContext(request))
我的目标是在已填充的字段中维护数据,而无需将其保存到数据库。也就是说,当您单击选项以添加其他字段条目时,您放入的数据将被保留并自动填充到表单中。我觉得这可能是草率的,也可能是不安全的。有什么理由这是一种不好或不安全的技术吗?有没有更好的方法来维护数据?
答案 0 :(得分:3)
虽然将request.POST
变量传递给模板本身并不是什么坏事,但是您尝试实现的所有内容都已经由定型表单视图处理。如果沿着当前的路径走下去,最终会得到一个推荐的方法来处理Django中的表单。
请参阅Django文档中的using a form in a view。
def contact(request):
if request.method == 'POST': # If the form has been submitted...
form = ContactForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
return HttpResponseRedirect('/thanks/') # Redirect after POST
else:
form = ContactForm() # An unbound form
return render_to_response('contact.html', {
'form': form,
})
在这种情况下,您需要确保重定向网址重定向到同一表单。请参阅django.shortcuts.redirect()
。