我是网络开发和django的新手,所以也许这是一个noob问题。
我想做以下事情:
这是我能想到的:
def add_content(request):
if request.method == 'POST':
form = AddContentForm(request.POST)
if form.is_valid():
content = form.save(commit=False)
return verify_content(request, content)
else:
form = AddContentForm()
return render(request, 'myapp/add_content.html', {'form' : form})
def verify_content(request, content):
return render(request, 'myapp/verify_content.html', {'content' : content})
verify_content模板显然会包含两个按钮('back','ok'),但我不知道如何将内容对象传递给视图以将其保存在db中,或者将其发送回以前的从那里查看。我应该使用js吗?我可以只使用服务器端代码吗?
也许我的整个逻辑都是错的。我应该在验证之前将对象保存在数据库中,然后在需要时将其删除(听起来很难看)?实现这个的好方法是什么?
提前感谢您的时间。
答案 0 :(得分:3)
您可以使用users session:
request.session['content'] = content
并且在用户应该验证其输入的视图中执行:
content = request.session['content']
和voilá你得到了2个观点之间的内容。
Django还通过保存服务器端或签名cookie来确保用户无法修改数据。
答案 1 :(得分:1)
我会在add_content视图中使用commit = True保存表单,并将向模型添加经过验证的字段或其他内容。然后,您可以将pk作为GET参数附加到链接,这将使您返回到验证的add_content视图。您可以从request.GET dict。
中提取参数