Я пытаюсь выполнить django-запрос, но с возможностью нескольких разных параметров WHERE. Поэтому я думал о том, чтобы сделать что-то вроде:
querystring = "subcat__id__in=[1,3,5]"
Listing.objects.filter(querystring)
Здесь Листинг определен в моей модели, и он содержит поле "Много-много" "subcat". Однако это вызывает значение ValueError, потому что фильтр не принимает строку в качестве аргумента. Есть ли способ в Python, чтобы строка оценивалась как просто ее содержимое, а не как строка? Что-то вроде оператора печати, который печатает значение строки inline, а не стандартного вывода.
Кстати, причина, по которой я не просто делаю
querystring = [1,3,5]
Listing.objects.filter(subcat__id__in=querystring)
заключается в том, что я не всегда фильтрую для subcat__id, иногда это один или несколько других параметров, и я бы предпочел не записывать кучу отдельных запросов, контролируемых операторами if. Любые советы очень ценятся.