Estoy tratando de hacer una consulta django, pero con la posibilidad de varios parámetros WHERE diferentes. Así que estaba pensando en hacer algo como:Usando una cadena como argumento para una consulta de filtro de Django
querystring = "subcat__id__in=[1,3,5]"
Listing.objects.filter(querystring)
Aquí inmueble se define en mi modelo, y contiene los Muchos-A-Muchos campo "subcat". Sin embargo, eso genera un ValueError porque el filtro no acepta una cadena como argumento. ¿Hay alguna manera en Python de que una cadena se evalúe solo como su contenido y no como una cadena? Algo así como una declaración de impresión que imprime el valor de la cadena en línea en lugar de la salida estándar.
Por cierto, la razón por la que no sólo lo hago
querystring = [1,3,5]
Listing.objects.filter(subcat__id__in=querystring)
es que no siempre estoy filtrado para subcat__id, a veces es uno o varios otros parámetros, y yo prefiero no tener que escriba un montón de consultas separadas controladas por declaraciones if. Cualquier consejo es muy apreciado.
perfecto, eso es exactamente lo que estaba buscando! Muchas gracias. – danny
@danny ¿Respuesta aceptada entonces? = P –