Djangoプロジェクトには、画像の座標をDjangoフォームに送信するJavaScriptがあります。次に、ユーザーはフォームを送信し、いくつかのロジックが適用された後、座標がデータベースに保存されます。ほとんどの場合はうまく機能しますが、javascript(アクセスが制限されている)がこの種の番号を送信することがあります:55.46353234234234e-14そしてフォームデータでこの種の変数を取得します:u'middle_img_center_y':[u'NaN ']私が通常得る数字の代わりに。そしてもちろん、私は次のような値エラーを受け取ります:floatNaNを整数に変換できません。その番号をキャッチして、フォームが期待するものに合うように変更できるかどうか、またはこれらの番号を受け入れるようにフォームを別の方法で設定できるかどうかはわかりません(現在は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);