Я пытаюсь добавить некоторые функциональные возможности, чтобы дать пользователю возможность фильтрации постраничный QuerySet в Django с помощью 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/ –
Я не хочу добавлять дополнительную команду в пользовательскую Менеджер, я хочу знать, существует ли такой способ. –
может быть hasattr на вашей модели, если это фильтр первого уровня. –