質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

464閲覧

Djangoでの画像切り抜きアプリ

Nisycon

総合スコア30

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/07/21 15:55

前提・実現したいこと

Djangoで画像切り抜きアプリを作りたいですが、
cropper.jsで切り取る座標データをformsでうまく渡すことができません。

渡した値をCropSizeというModelに引き渡すところまで実現したいです。

発生している問題・エラーメッセージ

・405 HTTP Error
・リダイレクト

など、さまざま。

該当のソースコード

python

1##forms.py 2 3class CropForm(forms.Form): 4 x = forms.FloatField(widget=forms.HiddenInput()) 5 y = forms.FloatField(widget=forms.HiddenInput()) 6 w = forms.FloatField(widget=forms.HiddenInput()) 7 h = forms.FloatField(widget=forms.HiddenInput())

python

1##models.py 2 3class CropSize(models.Model): 4 x = models.FloatField(blank=False) 5 y = models.FloatField(blank=False) 6 w = models.FloatField(blank=False) 7 h = models.FloatField(blank=False)

python

1##views.py 2class CropView(generic.edit.FormView): 3 template_name = 'app/crop.html' 4 form_class = CropForm 5 6 def form_valid(self, form): 7 8 x = form.cleaned_data['x'] 9 y = form.cleaned_data['y'] 10 w = form.cleaned_data['w'] 11 h = form.cleaned_data['h'] 12 13 CropSize.objects.create(x=x, y=y, w=w, j=h) 14 15 context = { 16 'x':x, 17 } 18 19 return render(self.request, 'app/test.html', context)

HTML

1{% extends 'app/base.html '%} 2{% load static%} 3 4{% block javascript %} 5<script> 6$(document).ready(function() { 7 8 var $image = $('.cropper > img'),replaced; 9 10 $('#img').cropper({ 11 aspectRatio: 4 / 4, 12 minCropBoxWidth: 50, 13 minCropBoxHeight: 50, 14 15 }); 16 17 $('#getData').on('click', function(){ 18 19 var data = $('#img').cropper('getData'); 20 21 var image = { 22 width: Math.round(data.width), 23 height: Math.round(data.height), 24 x: Math.round(data.x), 25 y: Math.round(data.y), 26 }; 27 28 $("#id_x").val(image["x"]); 29 $("#id_y").val(image["y"]); 30 $("#id_h").val(image["height"]); 31 $("#id_w").val(image["width"]); 32 $("#getData").submit(); 33 34 }); 35 36}); 37 38</script> 39{% endblock %} 40 41{% block content %} 42 <div id="ww"> 43 <div class="container"> 44 <div class="row"> 45 <div class="col-lg-8 col-lg-offset-2 centered"> 46 <h1>画像を切り抜く</h1> 47 <div class="cropper"> 48 <img id="img" class="img-responsive" src="{%static 'app/img/imagesearch.jpg'%}" alt=""> 49 </div> 50 <form action="" method="POST" enctype='multipart/form-data'> 51 {% csrf_token %} 52 <button id="getData" class="btn btn-outline-primary btn-lg">切り取る</button> 53 </form> 54 </div><!-- /col-lg-8 --> 55 </div><!-- /row --> 56 </div> <!-- /container --> 57 </div><!-- /ww --> 58{% endblock %}

試したこと

以下、参考サイトです。

https://simpleisbetterthancomplex.com/tutorial/2017/03/02/how-to-crop-images-in-a-django-application.html
http://co.bsnws.net/article/50

これらのサイトの情報を参考にしました。
ただJS、JQueryの扱い、Djangoとの連携がわからない状況です。

補足情報(FW/ツールのバージョンなど)

全然違う方法でも良いので、切り取りの座標がわかる方法があれば、
なんでも教えてほしいです!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

html

1<input type="hidden" name="x" value=""> 2<input type="hidden" name="y" value=""> 3<input type="hidden" name="w" value=""> 4<input type="hidden" name="h" value="">

HTMLにこんな記載をし、valueに値を挿入したらできました。

投稿2018/07/26 02:54

Nisycon

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

html

1<input type="hidden" name="x" value=""> 2<input type="hidden" name="y" value=""> 3<input type="hidden" name="w" value=""> 4<input type="hidden" name="h" value="">

HTMLにこんな記載をし、valueに値を挿入したらできました。

投稿2018/07/26 02:50

Nisycon

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問