Solución:
No, no puede realizar búsquedas basadas en métodos o propiedades del modelo. Django ORM no permite eso.
Las consultas se compilan en SQL para ser enviadas y procesadas a nivel de base de datos, mientras que las propiedades son código Python y la base de datos no sabe nada sobre ellas. Esa es la razón por la que el filtro Django solo nos permite usar campos de base de datos.
Puede hacer esto:
Order.objects.filter(created=..) # valid as 'created' is a model field
No puedo hacer esto:
Order.objects.filter(expires=..) # INVALID as 'expires' is a model property
En su lugar, puede utilizar listas por comprensión para obtener el resultado deseado.
[obj for obj in Order.objects.all() if obj.expire in days]
Lo anterior me dará la lista de Order
objetos que tienen expire
valor en el days
lista.
No creo que puedas usar una propiedad en las búsquedas de campo como dice el documento. The field specified in a lookup has to be the name of a model field
https://docs.djangoproject.com/en/1.8/topics/db/queries/#field-lookups