1

模型.py

类客户(模型。模型):

user = models.ForeignKey(User, on_delete=models.CASCADE)

contact = models.BigIntegerField(unique=True)

amount = models.BigIntegerField()

type = models.CharField(max_length=1)`

表格.py

类 Deposit_Form(forms.Form):

amount = forms.IntegerField(min_value=200, label="Enter amount u want to deposit")

视图.py

类登录(模板视图):

template_name = 'login.html'

def get(self, request, *args, **kwargs):

    Form = Login()

    return render(request, self.template_name, {'form': Form})

def post(self, request):

    username = self.request.POST.get('username').strip()

    password = self.request.POST.get('password').strip()

    if username is None or password is None:

        return HttpResponse({'Doesnt exist'}, status=HTTP_400_BAD_REQUEST)

    user = authenticate(username=username, password=password)

    if not user:

        return HttpResponse({'Invalid candidate '}, status=HTTP_404_NOT_FOUND)

    return redirect('customer_menu')

def customer_menu(请求):

if "user_id" in request.session:

    return render(request, 'customer_menu.html')

类存款(模板视图):

template_name = 'deposit.html'

def get(self, request, *args, **kwargs):

    Form = Deposit_Form()

    return render(request, self.template_name, {'form': Form})

@staticmethod

def post(request):

    if "user_id" in request.session:

        data = request.POST.get

        try:

            deposit_amount=data('deposit_amount')

            customer = CustomerModel(

                amount = deposit_amount+amount
            )
            customer.save()

            return HttpResponse('action performed successfully', 500)

        except Exception as e:

            return HttpResponse("failed : {}".format(e), 200)

现在我无法理解如何存款金额,它在存款类发布功能中显示错误金额 = deposit_amount + 金额

4

2 回答 2

1

如果我正确理解您的问题,您希望增加客户模型上的金额字段。但首先你必须找到你想要更新的对象。而你不能直接CustomerModel(amount=deposit_amount+amount)。您可以F()为此使用功能。例如:CustomerModel.filter(pk=id).update(amount=F('amount')+deposite_amount)

您可以在 此处找到有关 F() 函数的详细信息

编辑:作为另一种方式,您可以使用方法找到您的 CustomerModel 对象get()并增加您的金额字段。之后,您可以保存您的对象。像那样:

customer = CustomerModel.objects.get(pk=id) #you can change query field
customer.amount = customer.amount + data('deposite_amount')
customer.save()
于 2020-02-13T12:24:38.737 回答
0

错误是什么?

确保此字段可以为空

user = models.ForeignKey(User, on_delete=models.CASCADE)

contact = models.BigIntegerField(unique=True)

amount = models.BigIntegerField()

type = models.CharField(max_length=1)`
于 2020-02-13T12:16:56.620 回答