Представление django создает новый объект вместо его замены
Я написал такую функцию, которая заботится о платежной информации пользователя:
def PaymentView(request):
template = loader.get_template('reg/payment.html')
payment = PaymentInfo.objects.get(user=request.user)
if request.method == 'GET':
if payment and payment.isPaid:
return redirect('/dashboard')
return HttpResponse(template.render(request=request))
if request.POST.get('proceed'):
return redirect('/dashboard')
else:
payment = PaymentInfo(user=request.user)
price = 252000
order_id = jdatetime.datetime.now().isoformat().replace(":", "").replace(".", "").replace("-", "")
hyperlink = proceed_to_payment(payment, order_id, price)
return redirect(hyperlink)
и вот объект, который он создает для пользователей каждый раз, когда его вызывают:
class PaymentInfo(models.Model):
id = models.AutoField(primary_key=True)
user = ForeignKey(User, on_delete=models.CASCADE)
isPaid = BooleanField(default=False)
payment_number = CharField(max_length=32, null=True, default=None)
order_id = CharField(max_length=32, null=True, default=None)
track_id = CharField(max_length=50, null=True, default=None)
card_no = CharField(max_length=16, null=True, default=None)
hash_card_no = CharField(max_length=64, null=True, default=None)
payment_date = DateField(auto_now_add=True, null=True)
payment_verification_date = DateField(auto_now_add=True, null=True)
все работает отлично, но представьте, что пользователь нажимает определенную кнопку, чтобы перенаправиться на страницу оплаты, отменяет платеж и повторяет это еще раз. теперь у пользователя есть два отдельных объекта paymentInfo. Я хочу, чтобы первый из них обновлялся новой информацией. Какое утверждение я должен добавить в функцию views? Что-то вроде if payment.exists(), удалите его или замените его каким-то образом!