Я хочу, чтобы request.POST [имя переменной] выполнялось, только если имя переменной существует во входных данных шаблона - PullRequest
0 голосов
/ 14 апреля 2020
def sendorder(request):

    items = MenuModel.objects.all()
    if request.method == 'POST':
        for item in items:
            if request.POST['item'+str(item.id)]:
                print(request.POST['item'+str(item.id)])

    return

У меня есть некоторые входные данные в шаблонах с именем item2, item3 et c et c, но это представление отсчитывает с самого начала item1, что выдает ошибку, поскольку не существует ввода с именем item1. Я хочу обойти, если такого входного имени не существует.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Вы хотите сначала посмотреть, есть ли что-то, и если есть, то сделать что-то. Таким образом, вы проверяете, в этом случае используйте метод try и исключением. Предполагая, что вы уже экспериментировали, чтобы узнать, что вы получите от запроса. (Вы могли бы также сделать смесь ответа Мухаммеда) Вот как это будет go. Вот ссылка на пример его использования. https://www.w3schools.com/python/python_try_except.asp

for items in item:
    try request.POST['item'+str(item.id)]:
        //do something
    except:
        //Except was hit cause no item1 exists. Maybe run a print to be sure
0 голосов
/ 14 апреля 2020

Вместо того, чтобы обходить его, попробуйте передать идентификаторы в array представлению. И запрос соответственно.

Например:

id_list = request.POST['id_list']  # if you pass id array with key id_list
items = MenuModel.objects.filter(id__in=id_list)
for item in items:
    print(request.POST['item'+str(item.id)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...