finlandés
Estoy intentando filtrar usuarios por un campo personalizado en cada perfil de usuario llamado perfil. Este campo se llama nivel y es un número entero entre 0-3.
Si filtro usando iguales, obtengo una lista de usuarios con el nivel elegido como se esperaba:
user_list = User.objects.filter(userprofile__level = 0)
Cuando trato de filtrar usando menos de:
user_list = User.objects.filter(userprofile__level < 3)
me sale el error:
el nombre global ‘userprofile__level’ no está definido
¿Hay alguna manera de filtrar por , o estoy ladrando al árbol equivocado?
lprsd
Menor o igual:
User.objects.filter(userprofile__level__lte=0)
Mayor que o igual:
User.objects.filter(userprofile__level__gte=0)
Igualmente, lt
por menos de y gt
por mayor que. Puedes encontrarlos todos en la documentación.
-
Wow, eso fue rápido :). Esto funciona muy bien para menos o igual, pero ¿qué tal menos que? (userprofile__level__lt=3) no parece funcionar
– finlandés
6 de abril de 2012 a las 6:57
-
Lo hace; pero en cualquier caso, también puede excluir (__gte) en lugar de filtrar (__lt).
– lprsd
6 de abril de 2012 a las 7:01
-
Y NO olvides que hay dos
__
subraya– Andilabs
30 de enero de 2014 a las 6:48
-
Recibo este error–> {FieldError} Búsqueda no admitida ‘nivel’ para AutoField o unirse en el campo no permitido.
– Aravind R. Pillai
20 de septiembre de 2018 a las 3:18
-
pregunta, ¿qué significa =0 aquí? ¿falso? ¿verdadero?
– Deya Eldeen
23 de septiembre de 2020 a las 7:44
@BéresBotond Aunque los documentos se ven geniales, la estructuración y el diseño son tan deficientes que sin un enlace directo, son casi inútiles
– Ejecutar bucle
6 de julio de 2015 a las 4:41
@BéresBotond Desafortunadamente, ese enlace ahora está muerto 🙁
– dKen
30 de agosto de 2016 a las 18:59
Enlace de trabajo para doc: docs.djangoproject.com/en/1.11/ref/models/querysets/#gt
– Gaurav Pandey
24 de enero de 2018 a las 7:43