python - str 类型没有定义 __round__ 方法/如何获取表单字段?django 和cropper.js?
问题描述
我有一个 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')
但它总是返回这个错误
str 类型没有定义round方法
所以我得到的是我将数据作为字符串而不是浮点数来获取,因为它保存在 feild 表单中,所以我怎样才能正确地获取数据?
解决方案
根据[DjangoProject.Docs]:请求和响应对象- QueryDict 对象(即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'))
推荐阅读
- javascript - 如何在标记上放置事件?
- python - 计算平均绝对偏差的自定义函数
- python - Bin使用累积和而不是python中的观察值
- c++ - 我们如何将数组的每个元素相乘并将每个乘积值存储在 c++ 中的数组中?
- python - 在一堆元组上做一个 for 循环?
- multithreading - 减少导致高 CPU 的特定进程的线程数
- json - 从字典中获取键
- java - 使用 Mockito 测试我的 SpringBoot 应用程序时如何从属性文件中传递变量?
- javascript - 如何将下拉选择更新为“已选择”onClick
- php - 如何获取 PHP 标签之间的函数的 HTML 内容?