在 Django 项目中,我有一个 javascript,它将图像的一些坐标发送到 Django 表单。然后用户提交表单,并在应用一些逻辑后将坐标保存到数据库中。大多数时候它运行良好,但有时 javascript(我的访问权限有限)会发送这种数字:55.46353234234234e-14 并且在表单数据中我得到这种变量:u'middle_img_center_y': [u'NaN '] 而不是我通常得到的数字。然后我当然会得到这种类型的值错误:无法将浮点 NaN 转换为整数。我不知道我是否可以捕获该数字并对其进行修改以适应表单的预期,或者我是否可以以不同的方式设置表单以接受这些数字(现在它是一个 forms.FloatField)。谢谢你的帮助。
一些代码:
风景:
if request.method == 'GET':
form = ImageForm()
else:
form = ImageForm(request.POST)
... doing some cropping here then save
表格:
class ImageForm(forms.ModelForm):
class Meta:
model = Image
top_img_left = forms.FloatField(widget=forms.HiddenInput)
... then more of the same line but with middle, bottom, center, right...
这是一个字符串。
js代码:
var topZoomData = $('#img-top-remix').smoothZoom('getZoomData');
$('input[name="top_img_left"]').val(topZoomData.scaledX);
更新:
我现在正在尝试使用 toFixed 函数来避免如此大的数字: http ://www.w3schools.com/jsref/jsref_tofixed.asp
var topZoomData = $('#img-top-remix').smoothZoom('getZoomData');
$('input[name="top_img_left"]').val(topZoomData.scaledX).toFixed(3);