【发布时间】:2019-05-31 02:01:21
【问题描述】:
我有一个元组列表,想根据按下的按钮在其中删除或添加元组。添加 tubles 运行良好,但我的问题是,由于某种原因,如果我单击按钮删除元组,列表会将时间重置为删除发生之前的状态。
例如我有一个列表:
ctestformat = [('sung', 4, 15), ('ren', 3, 27), ('lexe', 4, 39)]
删除数字 15 后我得到:
ctestformat = [('ren', 3, 27), ('lexe', 4, 39)]
但是在收到另一个删除或添加的 POST 请求后,列表会重置为第一个状态,就好像什么都没有删除一样
这是我根据单击的按钮添加和删除元组的视图:
def editorstart(request, ctestformat=[]):
if request.method == 'POST':
"""If clicked on create gap button, create a new gap and put it in ctestformat"""
if 'create_gap' in request.POST:
selectedgap = request.POST['sendgap']
startindex = int(request.POST['startpoint'])-13
ctestformat.append((selectedgap, len(selectedgap), startindex))
ctestformat.sort(key=operator.itemgetter(2))
"""if clicked on deletegap, delete the gap from ctestformat"""
elif 'deletegap' in request.POST:
deleteindex = request.POST['deletegap']
test = [t for t in ctestformat if t[2] != int(deleteindex)]
ctestformat = test
# This function doesnt change anything to ctestformat
modifiedtext = createmodifiedtext(ctestformat)
return render(request, 'editor_gapcreate.html', {"text": modifiedtext, 'ctestformat': ctestformat})
如果您有任何其他问题,尽管问:)
编辑:
在我看来添加了回报
我的模板:
{% extends "base_generic2.html" %}
{% block content %}
<form action="editorgapcreate" id=create method="POST">
<input type="hidden" name="sendgap" id="sendgap">
<input type="hidden" name="startpoint" id="startpoint">
<script src="../static/textselector.js"></script>
<div id="thetext" onmouseup="getSelectionText()">
<h1>{{ text|safe }}</h1>
</div>
{% csrf_token %}
<p></p>
<b>Your current selected gap:</b>
<p id="currentgap"></p>
<input type="hidden" name="text" id="text" value="{{ text }}">
<button type="submit" name="create_gap" id="gapcreate">Create gap</button>
</form>
{% endblock %}
【问题讨论】:
标签: html django post django-forms django-views