Hi Steve,

You can use annotate for this 
<https://docs.djangoproject.com/en/1.9/ref/models/expressions/#using-f-with-annotations>
.

from datetime import timedelta

from django.db.models import DurationField, ExpressionWrapper, F

Entry.objects.annotate(
    duration=ExpressionWrapper(
        F('end') - F('start'), output_field=DurationField()
    )
).filter(duration__gte=timedelta(minutes=time_in_minutes)


Cheers,
Simon

Le mardi 19 janvier 2016 13:01:36 UTC-5, Steven Nash a écrit :
>
> Hi,
>
> Given an object such as:
>
> class Entry(models.Model):
>   start = models.TimeField()
>   end = models.TimeField()
>
> I'd like to be able to say something like:
>
> Entry.objects.filter(F('end')-F('start')__gt=time_in_minutes)
>
> Is there a way of doing this without implementing a separate duration 
> field and having a setter for start and end update it?
>
> Cheers,
> Steve
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/52638b82-dbcf-49a4-ad87-afdc81cfd5dd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to