0

私は django プロジェクトでいくつかの変更を加える必要があります。私は Python には精通していますが、django には詳しくありません。

これは私の状況です:

「アクティブ」フィールドを持つテーブルがあります。私がする必要があるのは、ユーザーがフィールドの値 (はい/いいえ) に基づいてテーブルをソートできるようにすることです。

views.py を調べたところ、ID に基づいてテーブルを並べ替えるビューがあることがわかりました。

users = User.objects.all().order_by('id')

私の質問は次のとおりです。

  1. url パラメータに基づいてテーブルをソートするビューを作成するにはどうすればよいですか?
  2. 別のビューを作成する必要がありますか、または何らかの変更を加えて同じものを使用できますか?
4

2 に答える 2

2

同じビューを使用できます。

def myView(request):
   get_param = request.GET.get('my_param', 'id')
   #some more processing
   users = User.objects.order_by(get_param) #note - you dont need the `all()`

   #rest of the code here.
于 2013-05-14T17:05:09.933 に答える
0

それは、テンプレートで何をレンダリングするかによって異なります。GET両方のビューが同様の html をレンダリングする場合は、一般的なビューでそれらをリファクタリングし、パラメーターに応じて並べ替えを行う方がよいでしょう。

私は関心の分離が好きなので、ヘルパー関数内のビュー コードをリファクタリングし、別の URL を使用して各ビュー内で呼び出すだけの別のアプローチがあります。

ビューが同様の html をレンダリングせず、どこかで何かをソートすることを除いてあらゆる面で互いに異なる場合、最良の方法は両方のビューを別々にコーディングすることだと思います。

これは単なる考慮事項ですが、質問に答えると、メソッドにGETアクセスするrequest.GETrequest.POST、メソッドに応じてパラメーターを取得できます。

それが役に立てば幸い!

于 2013-05-14T17:10:55.790 に答える