#django
Вопрос:
Я пытаюсь добавить способ оплаты. Я также добавляю Getway и получаю сообщение об успехе. Теперь я хочу показать сообщение об успехе с cid и именем на странице моего шаблона. Когда я хочу получить контекстные данные, я получаю эту ошибку. ** Локальная переменная ‘cid’, на которую ссылаются перед назначением. ** Мой код:
class CheckoutSuccessView(View): model = Transaction template_name = 'success.html' def get(self, request, *args, **kwargs): # return render(request, self.template_name,{'transaction':transaction}) return HttpResponse('nothing to see') def post(self, request, *args, **kwargs): data = self.request.POST try: Transaction.objects.create( name = data['value_a'], cid = data['value_b'], tran_id=data['tran_id'], val_id=data['val_id'], amount=data['amount'], card_type=data['card_type'], card_no=data['card_no'], ... ... ) messages.success(request,'Payment Successfull') name = data['value_a'], cid = data['value_b'], except: messages.success(request,'Something Went Wrong') context = { 'cid': cid, 'name' : name } return render(request, 'success.html', context)
Ответ №1:
Вы можете пропустить блок или сделать дополнительный отступ. Определите его, прежде чем пытаться заблокировать.
Вы можете попробовать это:
class CheckoutSuccessView(View): model = Transaction template_name = 'success.html' def get(self, request, *args, **kwargs): # return render(request, self.template_name,{'transaction':transaction}) return HttpResponse('nothing to see') def post(self, request, *args, **kwargs): data = self.request.POST name = data['value_a'], cid = data['value_b'], try: Transaction.objects.create( name = data['value_a'], cid = data['value_b'], tran_id=data['tran_id'], val_id=data['val_id'], amount=data['amount'], card_type=data['card_type'], card_no=data['card_no'], ... ... ) messages.success(request,'Payment Successfull') except: messages.success(request,'Something Went Wrong') context = { 'cid': cid, 'name' : name } return render(request, 'success.html', context)
Я думаю, что вы используете sslcommerz-lib для ПЛАТЕЖНОГО ШЛЮЗА SSLCOMMERZ.