Evaluacion.objects.values('id', 'periodo__indicador').filter(periodo__indicador=1)
<QuerySet [{'id': 1, 'periodo__indicador': 1}, {'id': 1, 'periodo__indicador': 2}, {'id': 1, 'periodo__indicador': 3}, {'id': 1, 'periodo__indicador': 4}, {'id': 1, 'periodo__indicador': 5}, {'id': 1, 'periodo__indicador': 6}, {'id': 1, 'periodo__indicador': 7}, {'id': 1, 'periodo__indicador': 8}, {'id': 3, 'periodo__indicador': 1}, {'id': 3, 'periodo__indicador': 2}, {'id': 3, 'periodo__indicador': 3}, {'id': 3, 'periodo__indicador': 4}, {'id': 3, 'periodo__indicador': 5}, {'id': 3, 'periodo__indicador': 6}, {'id': 3, 'periodo__indicador': 7}, {'id': 3, 'periodo__indicador': 8}]>Class Periodo(models.Model):
pass
Class Indicador(models.Model):
periodo = models.ForeignKey(Periodo, on_delete=models.CASCADE)
class Evaluacion(models.Model):
periodo = models.ForeignKey(Periodo, on_delete=models.CASCADE)Finally, note that you can call filter(), order_by(), etc. after the values() call, that means that these two calls are identical:
Blog.objects.values().order_by('id')
Blog.objects.order_by('id').values()
I tried to change the order between 'values' and 'filter', and it worked:
Evaluacion.objects.filter(periodo__indicador=1).values('id', 'periodo__indicador')
<QuerySet [{'id': 1, 'periodo__indicador': 1}, {'id': 3, 'periodo__indicador': 1}]>