Hi,

I am not cleat of what you suggested as a dictionary method and how you are
going to use it.

But any way let me check my guesses and I will be back.

On Mon, Aug 1, 2016 at 11:25 PM, Yoann Duriaud <[email protected]>
wrote:

> Thanks for the tip, but besides defining the type of the output it is
> unclear how this can be used to perform a date difference operation.
>
> What I would need is to convert *timezone.now()* into a date constant
> that can be understood by the database, whatever the database is. If I
> leave it as it is, I get the str() conversion, which is meaningless for the
> database. Even if I find some format *dd-mm-yyyy* that works with a given
> database, I wouldn't be sure that it works with other databases. I need the
> ORM to perform the conversion *Date Object -> Database date constant*.
>
> Then comes the date difference operation. Same thing: either the database
> understands the minus sign with date format, or it doesn't and need some
> DATEDIFF operator. Again I would need the ORM to explicitly set the right
> operator.
> My guess at the moment is that this cannot be achieved with Django ORM. I
> may apply the dict method and work with the dictionary instead, so that I
> can add custom fields more easily.
>
> Yoann
>
>
>
> Le dimanche 31 juillet 2016 09:25:58 UTC+2, Constantine Covtushenko a
> écrit :
>>
>> Hi Yoann,
>>
>> I am not sure exactly but believes you are on the right way.
>> Try improve your expression with ExpressionWrapper, as said here
>> <https://docs.djangoproject.com/en/1.9/ref/models/expressions/#using-f-with-annotations>
>> .
>> Probably the problem is that you use values of different types in your
>> expression.
>>
>> Regards
>>
>> On Sat, Jul 30, 2016 at 11:35 PM, Yoann Duriaud <[email protected]>
>> wrote:
>>
>>> Hello,
>>> I would like to annotate a query with the following expression: ([Due
>>> Date] - [Now])/[Interval]. [Due Date] and [Interval] are fields from the
>>> database, while [Now] should be "equal" to timezone.now().
>>>
>>> So this would look like:
>>> .annotate(ratio=(F('due_date')-timezone.now())/F('Interval'))
>>>
>>> but this does not work. Does someone know how the expression should be
>>> written (if it is indeed feasible with Django ORM)?
>>>
>>> Thanks for your help!
>>>
>>> Yoann
>>>
>>> --
>>> 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/03dedd39-142f-468a-b6fd-b7ec551862e8%40googlegroups.com
>>> <https://groups.google.com/d/msgid/django-users/03dedd39-142f-468a-b6fd-b7ec551862e8%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> 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/60119a06-5b1f-4e23-a142-627c65f14017%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/60119a06-5b1f-4e23-a142-627c65f14017%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAK52boXEZ%2BygOsiaE%3DZf5TbDMLLyixR--keV6jXXCKJPC_3w4Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to