gpt4 book ai didi

python - type str 没有定义 __round__ 方法/如何获取表单字段? django 和cropper.js?

转载 作者:行者123 更新时间:2023-12-01 07:16:15 26 4
gpt4 key购买 nike

我有一个 Django 表单,用户可以在其中上传图像,有时只裁剪其中的一部分,因此我使用cropper javascript 来获取坐标,但问题是收到的数据被视为字符串

这是我如何获取表单数据

  /* SCRIPT TO COLLECT THE DATA AND POST TO THE SERVER */
$(".js-crop-and-upload").click(function () {
var cropData = $image.cropper("getData");
$("#id_x").val(cropData["x"]);
$("#id_y").val(cropData["y"]);
$("#id_height").val(cropData["height"]);
$("#id_width").val(cropData["width"]);
$("#formUpload").submit();
});

表单.py

class ImageForm(ModelForm):
x = forms.FloatField(widget=forms.HiddenInput())
y = forms.FloatField(widget=forms.HiddenInput())
width = forms.FloatField(widget=forms.HiddenInput())
height = forms.FloatField(widget=forms.HiddenInput())

class Meta:
model = UploadedImages
fields = ('pre_analysed', 'x', 'y', 'width', 'height', )

这就是我从表单获取数据的方式

if form.is_valid():
image = form.save(commit=False)
x = request.POST.get('x')
y = request.POST.get('y')
w = request.POST.get('width')
h = request.POST.get('height')

但它总是返回此错误

type str doesn't define round method

所以我得到的是,我将数据作为字符串而不是 float 获取,因为它保存在表单字段中,那么我怎样才能正确获取数据?

最佳答案

根据[DjangoProject.Docs]: Request and response objects - QueryDict objects (即HttpRequest.POST),请求属性存储为字符串。
您应该将它们转换为 float :

x = float(request.POST.get('x'))
y = float(request.POST.get('y'))
w = float(request.POST.get('width'))
h = float(request.POST.get('height'))

关于python - type str 没有定义 __round__ 方法/如何获取表单字段? django 和cropper.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57928756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com