#python #django
Вопрос:
Есть страница выставления счетов, на которой я заполняю все детали и нажимаю кнопку «Выставить счет», затем должна быть сгенерирована страница счета, она не приходит.
views.py
def makebill(request):
if request.method == "POST":
cart = request.POST.get('cart')
price = request.POST.get('price')
n = request.POST.get('name')
phone = request.POST.get('phone')
data = json.loads(cart)
for c in data:
name = c['name']
qty = c['qty']
prod = Product.objects.get(name=name)
prod.qty = prod.qty - int(qty)
if prod.qty <= 0:
messages.warning(request, f'{prod.name} has finished')
prod.delete()
else:
prod.save()
p= Sales(items_json=cart, amount=price, name=n, phone=phone)
p.save()
total = price
product = Product.objects.all().order_by('name')
product_list = list(product.values('name', 'cost'))
context = {}
context["product"] = json.dumps(product_list)
try:
context["total"] = total
except:
pass
return render(request, 'makebill.html', context)
Заранее спасибо!
Комментарии:
1. Почему пейдж не приходит? В чем заключается ошибка, которую вы получаете? Это HTTP 500 или что-то еще? Пожалуйста, расскажите более подробно об этой проблеме. Кроме того, отступ вашего кода выглядит не очень хорошо. Будьте осторожны, последние 9 строк находятся за пределами запроса на публикацию.
2. Я не получаю никаких ошибок всякий раз, когда я заполняю эту форму и нажимаю «Оплатить счет», после чего я перенаправляюсь на ту же страницу. вместо перенаправления на ту же страницу я хочу перенаправить на страницу счета-фактуры.
3. Отступ кода в порядке? Похоже, что это не так. Последние 9 строк должны быть с отступом. Если это просто выглядит так в вашем посте, но ваш код правильный, исправьте это также здесь, потому что это сбивает с толку. Также все еще не помогает с ошибкой. Ваш сервер получил запрос от интерфейса? Что он вернул?
4. Если я сделал отступ в коде, эта ошибка показывает «Вид home.views.makebill не вернул объект HttpResponse. Вместо этого он ничего не вернул».