我有一个Django表单,用户可以在其中上传图像,有时只裁剪其中的一部分,因此我使用了裁剪器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();
});
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')
但它总是返回此错误
类型str没有定义 round 方法
所以我得到的是,我以字符串而不是浮点数的形式获取数据,因为数据以字段形式保存,所以我该如何正确获取数据?
答案 0 :(得分:1)
根据[DjangoProject.Docs]: Request and response objects - QueryDict objects(HttpRequest.POST
),请求属性存储为字符串。
您应该将它们转换为浮点数:
x = float(request.POST.get('x'))
y = float(request.POST.get('y'))
w = float(request.POST.get('width'))
h = float(request.POST.get('height'))