Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django的存款金额_Python_Django_Postgresql - Fatal编程技术网

Python 使用Django的存款金额

Python 使用Django的存款金额,python,django,postgresql,Python,Django,Postgresql,Model.py 类别客户(models.Model): Form.py 类别存款单(forms.Form): View.py 类登录(TemplateView): def客户_菜单(请求): 类别存款(TemplateView): 现在我不明白存款金额是如何计算的,它在存款类post函数amount=存款金额+金额中显示错误,错误是什么 确保此字段可以为空 user=models.ForeignKey(用户,on_delete=models.CASCADE) contact=models.Bi

Model.py

类别客户(models.Model):

Form.py

类别存款单(forms.Form):

View.py

类登录(TemplateView):

def客户_菜单(请求):

类别存款(TemplateView):

现在我不明白存款金额是如何计算的,它在存款类post函数amount=存款金额+金额中显示错误,错误是什么

确保此字段可以为空

user=models.ForeignKey(用户,on_delete=models.CASCADE)
contact=models.BigIntegerField(unique=True)
amount=models.BigIntegerField()
类型=型号.CharField(最大长度=1)`

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

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

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

customer = CustomerModel.objects.get(pk=id) #you can change query field
customer.amount = customer.amount + data('deposite_amount')
customer.save()

什么是CustomerModel.filter(pk=id)?是用户_idNoı只提供一个样本。您必须决定要更新的对象,并在此基础上找到此对象。您可以使用user_id字段,但您的模型没有与user一对一连接。因此,您可能会错误地访问另一个CustomerModel。因此,您必须编写自己的筛选逻辑。它显示此错误“DeferredAttribute”对象没有属性“update”def post(请求):如果request.session中的“user\u id”:data=request.post.get try:deposit\u amount=data('deposit\u amount')customer=CustomerModel.amount.update(amount=F('amount')+存款金额)customer.save()返回HttpResponse('action performed successfully',500),例外情况为e:返回HttpResponse(“failed:{}”。format(e),200)好的,您的
CustomerModel.amount.update(amount=F('amount')+存款金额)
code错误。因为您必须决定要更新哪个db记录?您必须先筛选,然后才能更新记录。就像
CustomerModel.objects.filter(您必须在此处填写)。更新(amount=F('amount')+存款金额)
amount = forms.IntegerField(min_value=200, label="Enter amount u want to deposit")
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')
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)
customer = CustomerModel.objects.get(pk=id) #you can change query field
customer.amount = customer.amount + data('deposite_amount')
customer.save()