У меня проблема с поддержкой данных.Я передаю в шаблоне разные имена переменных.Когда я отправляю одну переменную, у меня появляется ошибка: Тип исключения: MultiValueDictKeyError.
Я отправляю для просмотра переменных с именами btn
, delete
и undo
.
Я сделалэто так
try:
task = List.objects.get(id=data['undo'])
except:
try:
task = List.objects.get(id=data['delete'])
except.....
И это работает правильно, но у меня есть проблема, чтобы сделать это лучше.
Мой взгляд
def index(request):
if request.method == 'POST':
data = request.POST
type_of = request.POST.get('type')
if data['description']:
new_task = List()
new_task.create_task(data['title'], data['description'], type_of)
else:
return render(request, './index.html', {'context': "error: field cannot be empty"})
if request.method == 'GET':
data = request.GET
try:
task = List.objects.get(id=data['btn'])
for x in task_status:
if task.type_of == task_status[x]:
task.type_of = task_status[x + 1]
break
task.save()
except:
try:
task = List.objects.get(id=data['delete'])
task.delete()
except:
try:
task = List.objects.get(id=data['undo'])
for x in task_status:
if task.type_of == task_status[x]:
task.type_of = task_status[x - 1]
break
task.save()
except:
task_list_back_log, task_list_to_do, task_list_in_progress, task_list_done = return_filter_lists()
return render(request, './index.html',
{'back_log': task_list_back_log, 'to_do': task_list_to_do,
'in_progress': task_list_in_progress,
'done': task_list_done})
Но когда я удалил свой блок try-exc и перешел к просмотру только для примера data['undo']
У меня ошибка
Значение исключения: 'btn'
Проблема в том, что когда я загружаю шаблон в первый раз, мой запрос данных пуст ... Есть ли способ проверить, какая переменная существует в поле зрения, и использовать его?