2

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);
4

0 に答える 0