web-dev-qa-db-ja.com

Djangoを呼び出す

Djangoプロジェクトの基本的なソート関数を作成しようとしていますが、「ソート」ボタンをクリックしたときにソート関数を呼び出す方法がわかりません

Djangoビュー:

def sort_btn(request):
if request.GET.get('sort-btn'):
    cits = Citizen.objects.all().order_by('name')
return render_to_response(request, 'civil_reg/index.html', {'cits': cits})

HTMLボタン:

<button name="sort-btn" id="sort-btn">sort</button>
4
Paul SZ

次のスニペットのように、<button><form>タグでラップする必要があります。

<form action='actionUrl' method='GET'>
<button type='submit'> sort me</button>
</form>

urls.pyモジュールでは、次のようにviews.pyモジュールの特定のビューでactionUrlを指す必要があります。

from Django.urls import path

from . import views

urlpatterns = [
    path(actionUrl, views.yourSort),
]

djangoでのリクエストのライフサイクルについてもっと読む必要があります:

  1. ユーザー送信リクエスト
  2. Djangoは、リクエストのURLとurls.pyで定義されたルートの最初の一致を取得しようとします
  3. リクエストは一致したビューに渡されます
  4. ビューが実行されます。通常、これはいくつかのモデル処理です
  5. レスポンス(テンプレート)はビューからHttpResponseとして返されます
3
adnanmuttaleb