私はユーザーがパラメータを取得URLを介してジャンゴでページ番号付きクエリセットをフィルタリングする機能を与えるために、いくつかの機能を追加しようとしている、と首尾よく働いて、これを持っている:文字列がDjangoクエリーセットの有効なフィルターであるかどうかを確認する方法はありますか?
for f in self.request.GET.getlist('f'):
try:
k,v = f.split(':', 1)
queryset = queryset.filter(**{k:v})
except:
pass
しかし、私はそうすることを期待していますtry/except
ブロックを使用しないでください。文字列が有効なフィルタパラメータであるかどうかをチェックする標準的な方法がdjangoにありますか?
例えば何かのように:
my_str = "bad_string_not_in_database"
if some_queryset.is_valid_filter_string(my_str):
some_queryset.filter(**{my_str:100})
私が正しく理解している場合、リンクから情報を見つけることができます:https://docs.djangoproject.com/en/1.10/topics/db/managers/ –
私はカスタムに余分なコマンドを追加するつもりはありませんマネージャー、私はそのような方法が既に存在するかどうかを知りたい。 –
"first"レベルのフィルタであればモデルにhasattrが含まれている可能性があります。 –