У меня есть список кортежей, и я хотел удалить или добавить в него кортежи в зависимости от того, какая кнопка была нажата. Добавление 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})
Если у вас есть еще вопросы, просто спросите:)
EDIT:
добавлен возврат на мой взгляд
мой шаблон:
{% 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 %}