2017-11-30 12 views
0

ボタンをクリックしてビュー機能を起動させる方法は実際にはわかりません...私はすでにグーグルではありますが、実際にはわかりません。 私のHTMLでは、私は:ブートストラップボタンでビュー機能をトリガーする

<a class="btn btn-large btn-info" href="{% url "device-detail" device.pk %}" name = 'rotateleft'>Rotate Left</a> 

そして、私のviews.py中:

class DeviceDetail(DetailView): 
    .... 
    def rotate_left(request, self): 
    if request.GET.get('rotateleft') == 'rotateleft': 
     print 'TEST!!!!' 
     self.image.open() 
     self.image.rotate(-90) 
     self.image.save() 

私はボタンをクリックすると、ページが計画通りに再ロードするようだが、「TEST」は印刷されません(画像を回転させないようしかし、それを回転させるはずのコードがまだ動作していない可能性があります、私は関数私はこの関数が呼び出されることはないと推測しています。

私は比較的新しくDjangoの新機能で、DjangoのWebインターフェイス側ではとても新しいので、本当に感謝しています!

+0

使用単一qoute:のような、あなたのビューに渡すパラメータは、リンクURL内にあることが必要であることに注意してください'' {%url 'device-detail' device.pk%} "' URL名を定義します。 – Satendra

答えて

0

ここではいくつか混乱しているようです。リンクをクリックすると、気付いたようにDeviceDetailページが「更新」されます。ただし、HTMLリンクにname属性を追加しても、サーバーへの要求には影響しません。

あなたが達成しようとしているものに基づいて、単純なビュー機能を使用し、画像を回転させる方法を決定するためのGETパラメータを読み込んでください。 「{ 『device.pk%=右回転させる?

のhref =%のurl』デバイス詳細}」

+0

だから私はちょうど何かのようなものを追加するだろうか?私のURLに右=回転し、 'if '?rotate = right''をrequest.GETで実行すると、ビュー機能がトリガーされますか? – LizzAlice

+0

それでも、TEST〜は返されませんし、URLも本当に良く見えません。:/ボタンを押して関数をトリガする方法はありませんか? – LizzAlice

+0

あなたのコードには、rotate_left関数をトリガーするものは何もないことを指摘していました。私が言ったのは、クラスベースの 'DetailView'を単純なビューに置き換えるということでした。マニュアルについては、https://docs.djangoproject.com/en/1.11/topics/http/views/を参照してください。そのビューで は、あなたのようなものを使用してGETパラメータを確認することができます。 場合request.GET.get(「回転」)==「左」: あなたはURLでショーをアップ気づいたように、パラメータがします。 POSTリクエストを使用してリクエストを送信しない限り、これは常に該当します。 より良いアプローチは、リクエストにajaxを使用している可能性があります。 – Zathras

関連する問題