我想要一个将表格保存到会话的按钮



我的表单很长,我希望我的用户能够将其保存在 session 中后来。

我在想一个按钮中间的一个按钮,该按钮激活了节省的课程动作,并带领另一种形式来创建必要的对象。

<a href="{% url 'tag:create_new_tag'%}">
   <button class="btn btn-primary" value="">
     Add New Tag
    </button>
</a>

问题是,如果我插入没有任何类型的按钮(例如上面的代码中(,则表示表单并将对象保存到数据库中,尽管我只是希望将其保存在会话中。另一方面,如果我添加了type=button属性,则HTTP请求将是一个获取,因此我无法检索到目前为止完成的字段。

那么最好的方法是如何做的?

看来您正在使用bootstrap或类似框架。首先,您不必在<a>元素内包含<button>,这也违反了W3C标准。其次,使用Bootstrap,您可以仅使用a元素,同时将其呈现为按钮:

<a href="{% url 'tag:create_new_tag'%}" class="btn btn-primary" id="btn-add-new-tag">
  Add New Tag
</a>

似乎您还需要在打开Django URL 'tag:create_new_tag'时保留表单。如果打开一个新窗口/标签是可以接受的:

<a target="_blank" href="{% url 'tag:create_new_tag'%}" class="btn btn-primary" id="btn-add-new-tag">
  Add New Tag
</a>

此外,如果要在打开URL时保存表单,则必须使用JavaScript完成:

var btnAddNewTag = document.getElementById('btn-add-new-tag');
var form = document.getElementById('your-form');
btnAddNewTag.addEventListener('click', function() {
    form.submit();
}, false);

我实际上发现了如何做我想到的事情,这要归功于此处发现的另一个问题 如何构建多个提交按钮django表单?

所以我放了2个不同的提交按钮,将请求发送到相同

<input class="btn btn-primary" name="add-new-tag" type="submit" value="Add New Grammar" />
<input class="btn btn-primary" name="submit-question" type="submit" value="Save" />

但是,在处理表单的视图功能中,我放置了

之类的条件
if 'add-new-tag' in form.data:
    #save the datas i need in session, and switch to a second form
    # when second form is completed and saved, redirect back to the 
    # main form and populate fields with data from session
else:
    #submit the main form

这允许我仅使用一个窗口

最新更新