Usar parámetros GET como filtros de consulta

Tengo una URL con parámetros como:

field1__lt=7&field2__contains=bar

Entiendo cómo obtener estos valores del dictado clean_data, pero ¿cómo puedo ponerlos en declaraciones filter ()? Al filtro no parece gustarle que la clave sea una cadena.

Esto es solo para usuarios de confianza, por lo que no hay problemas de seguridad.

preguntado el 27 de agosto de 11 a las 17:08

2 Respuestas

Utilice dict desembalaje. Si tienes un dictado como {'field1__lt':7, 'field2__contains':'bar'} en una variable lookups, entonces puedes escribir filter(**lookups).

Respondido 28 ago 11, 05:08

Creo que necesitas pasar algunos argumentos en el método .filter. Entonces necesitarás usar objetos Q. Entonces, algo como esto funcionará correctamente.

MyModel.objects.filter(Q(field1__lt=7)&Q(field2__contains=bar))

Respondido 27 ago 11, 21:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.