首页 > 解决方案 > 如何从 Django 模型表单中的 POST 请求中提取单个值?

问题描述

希望能够直接访问发布请求中的数据并以正常方式处理它。第一个创建的表格:

class TransactionForm(ModelForm):
   class Meta:
       model = Transaction
       fields = ['dish', 'customer', 'grams', 'amount_payable']

('customer'是另一个模型Customer的pk。)然后处理表格:

@csrf_exempt 
def create_transaction(request):
    print(request.POST)
    user_input = TransactionForm(request.POST)
    print (user_input)
    if user_input.is_valid():
        user_input.save()

        #customerobject = Customer.objects.get(pk= PK-TAKEN FROM POST)
        #customerobject.account_balance -= (amount_payable TAKEN FROM POST)
        #customerobject.save()

        return HttpResponse('AOK~')
    else:
        return HttpResponse(user_input) #'ERROR: transaction not valid~')

我正在努力正确地制定上面的注释行。(其余的工作正常。)希望能够从 POST 中提取值“客户”以找到客户。然后从 POST 中提取值“amount_payable”,以便从客户的余额中扣除。

标签: djangodjango-formsdjango-views

解决方案


最终偶然发现了相关命令:

        cust = user_input.cleaned_data.get('customer')
        customerobject = Customer.objects.get(pk=cust.id)
        customerobject.account_balance -= user_input.cleaned_data.get('amount_payable')
        customerobject.save()

对于像我这样的筛头来说,低级语言更容易。


推荐阅读