Hi!
What I am trying to do is filtering using queryset, get a value when verified is true. It works fine when:
mano_obra = HoraHojaTrabajo.objects.values('literal__proyecto__id_proyecto').annotate(
cantidad_horas=ExpressionWrapper(Sum((F('cantidad_minutos') / 60)),
output_field=DecimalField(max_digits=4)),
costo_total=ExpressionWrapper(
Sum((F('cantidad_minutos') / 60) * (F('hoja__tasa__costo') / F('hoja__tasa__nro_horas_mes'))),
output_field=DecimalField(max_digits=4))
).filter(
literal__proyecto__id_proyecto=OuterRef('id_proyecto')
)
qs = Proyecto.objects.prefetch_related(
'mis_literales'
).annotate(costo_mano_obra=Subquery(mano_obra.values('costo_total')),
cantidad_horas_mano_obra=Subquery(mano_obra.values('cantidad_horas')))
but later, when I add in the filter (verificado=True)
mano_obra = HoraHojaTrabajo.objects.values('literal__proyecto__id_proyecto').annotate(
cantidad_horas=ExpressionWrapper(Sum((F('cantidad_minutos') / 60)),
output_field=DecimalField(max_digits=4)),
costo_total=ExpressionWrapper(
Sum((F('cantidad_minutos') / 60) * (F('hoja__tasa__costo') / F('hoja__tasa__nro_horas_mes'))),
output_field=DecimalField(max_digits=4))
).filter(
literal__proyecto__id_proyecto=OuterRef('id_proyecto'),
verificado=True
)
qs = Proyecto.objects.prefetch_related(
'mis_literales'
).annotate(costo_mano_obra=Subquery(mano_obra.values('costo_total')),
cantidad_horas_mano_obra=Subquery(mano_obra.values('cantidad_horas')))
and I got the following message:
Request Method: | GET |
---|
Request URL: | http://127.0.0.1:8000/api/proyectos/ |
---|
Django Version: | 2.0.1 |
---|
Exception Type: | FieldError |
---|
Exception Value: | Expression contains mixed types. You must set output_field. |
---|
Exception Location: | /Users/fabioandresgarciasanchez/PycharmProjects/virtualenv/proyectos_intranet_env/lib/python3.6/site-packages/django/db/models/expressions.py in _resolve_output_field, line 298 |
---|
Python Executable: | /Users/fabioandresgarciasanchez/PycharmProjects/virtualenv/proyectos_intranet_env/bin/python |
---|
Python Version: | 3.6.3 |
---|
How can I get this working?