Fixed #24486 -- Documented method to provide output_field to mixed F expressions

This commit is contained in:
Josh Smeaton 2015-03-16 16:11:03 +11:00 committed by Tim Graham
parent 937643a1f2
commit 820381d38b
1 changed files with 11 additions and 0 deletions

View File

@ -274,6 +274,17 @@ should define the desired ``output_field``. For example, adding an
``IntegerField()`` and a ``FloatField()`` together should probably have ``IntegerField()`` and a ``FloatField()`` together should probably have
``output_field=FloatField()`` defined. ``output_field=FloatField()`` defined.
.. note::
When you need to define the ``output_field`` for ``F`` expression
arithmetic between different types, it's necessary to surround the
expression in another expression::
from django.db.models import DateTimeField, ExpressionNode, F
Race.objects.annotate(finish=ExpressionNode(
F('start') + F('duration'), output_field=DateTimeField()))
.. versionchanged:: 1.8 .. versionchanged:: 1.8
``output_field`` is a new parameter. ``output_field`` is a new parameter.