"Its not a bug, its a feature."

See: 
https://docs.djangoproject.com/en/1.9/ref/models/querysets/#when-querysets-are-evaluated

If you were designing Django's internals, you might have decided that the 
Queryset "should behave" in a certain way, but the designers have chosen 
this approach.  There is no "disguise" about this; it's well-known and 
well-documented.


On Friday, 11 December 2015 15:43:45 UTC+2, Ws Hu wrote:
>
> import json
> from myapp.models import MyModel
>
>
> x = json.dumps(MyModel.objects.values_list('myField', flat=True)) # "[] 
> is not JSON serializable"
> x = json.dumps([x for x in MyModel.objects.values_list('myField', flat=
> True)]) #ok
>
>
>
> ####
> It seems that the database is accessed only if the result of 
> objects.filter()/all()/values_list()/... is printed/iterated/... .
> It's fine, but I think the methods of model manager like 
> filter()/all()/values_list() should behave as if it is processing python 
> objects. I have not yet digged into json module, but it did penetrated 
> django's disguise.
>

-- 
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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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/122c7ed6-a79d-4c84-b5fa-28899040f64d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to