我有一个在Django中处理POST表单的视图。我想对这些信息做一些验证。然后,使用表单中的数据重定向到视图。我不想将此信息保留在URL中。这样做的最佳方式是什么?
感谢。
答案 0 :(得分:1)
<强>更新强>
如果您想在另一个视图中处理来自一个视图的某些数据,您可以执行以下操作:
def process_view(request, username):
''' This is the view where you want to process the username '''
# process the username ...
return something
def login_view(request):
''' Main login form through which data is submitted '''
if request.method == 'POST':
username = request.POST['username'] # the username submitted via form
# do something ...
# call the process_view below
return process_view(request, username)
但是,如果您要 登录 该用户,则需要在该用户的浏览器上设置身份验证Cookie。设置Cookie还允许您在任何所需的视图中处理 用户名 。
以下是设置Cookie的方法:
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
# set the cookie below
request.session['username'] = username
return something
现在,如果您想在任何其他视图中访问用户名,请执行以下操作:
def some_view(request):
username = request.session['username']
# do something ...
return something
我建议您使用第二种方法,即设置Cookie 方法,因为它比从另一个视图调用视图更有效。
答案 1 :(得分:0)
您是否可以在视图结尾处使用POST数据调用其他视图?
或使用会话(或cookie)存储帖子数据? https://docs.djangoproject.com/en/dev/topics/http/sessions/