queryset union not keep order, use values_list