Как я могу запросить ярлык сеанса в Django Python? - PullRequest
0 голосов
/ 22 апреля 2020

Вот мой код views.py:

def checkout(request):
    request.session["quantity"] = int(request.POST["quantity"])
    request.session["price"] = float(request.POST["price"])
    quantity_from_form = request.session["quantity"]
    price_from_form = request.session["price"]
    total_charge = quantity_from_form * price_from_form


    context = {
        'quantity_from_form': quantity_from_form,
        'price_from_form': price_from_form,
        'total_charge': total_charge
    }

    print("Charging credit card...")
    Order.objects.create(quantity_ordered=quantity_from_form,
                         total_price=total_charge)
    return render(request, "store/checkout.html", context)

Я хочу, чтобы ярлыки называли request.session [""] = request.POST [""]. Есть ли способ, которым я могу сократить это?

1 Ответ

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

Вы можете сделать это:

for key in ("quantity", "price"):
    request.session[key] = request.POST[key]

НО 1 / это не преобразует ваши значения в нужный тип, и 2 / вы все равно НЕ должны использовать неподтвержденные, неанизированные пользовательские вводы, поэтому правильным решением является использование Django Form (или ModelForm, если целью является создание нового экземпляра модели).

Кроме того, вы должны создавать экземпляр модели только в запросе POST - запросы GET MUST (не «должен» - «должен») быть идемпотентом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...