django - 如何从 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”,以便从客户的余额中扣除。
解决方案
最终偶然发现了相关命令:
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()
对于像我这样的筛头来说,低级语言更容易。
推荐阅读
- python - Tensorflow:具有可变长度的 OneHot 编码
- c# - C# DataTable 在控制台中显示单行
- excel - Lastrow 变量 - 与另一个数据集合并后仅读取第一个数据集的最后一行
- python - python中的MAPE(平均绝对百分比误差)测量导致错误
- ios - UISegmentedControl.noSegment 停止使用 Xcode 11、iOS 13
- java - 对于 Scanner 类型,方法 nextInt() 未定义
- delphi - Delphi中TToolButton Caption的多行文本
- laravel - Vue js PATCH http://127.0.0.1:8000/api/auth/profile 401(未经授权)
- markdown - 在 Markdown 中格式化深层列表
- php - 匹配令牌及其可能重叠的上下文