I would really like two things for values to support.

1. Aliases .values(alias='field');
2. Expressions .values(alias=F('field'))

I think these two features are absolute must haves, and the syntaxes above 
are already standard in other parts of the ORM.

If someone can come up with a way to support nested relations while 
supporting the above syntax, then I'd be OK with that. But at the moment, 
I'm firmly in the "this is the responsibility of a serialiser" camp. I'm 
not convinced Django needs to support nested objects at all. Is this 
something you could implement with your own queryset method on a manager? 
Is this maybe something we could look at creating a new queryset method 
called .values_dict() ?

If it weren't for backwards compatibility, I'd suggest that referencing the 
related object would automatically nest that object. That would 
differentiate between the id and the field values('related_id', 'related') 
-> '{"related_id": 1, "related": {"id": 1, ..}}'.

If there's (rough) consensus on having nested objects, then we could allow 
something like: .values(..., ..., nested=('related', 
'related__otherrelated')). If the value of nested is an iterable then 
assume we're nesting, otherwise nested is an alias for the field. I don't 
particularly like overloaded kwargs, but we're just guarding against 
someone wanting to alias as "nested" which we could call out in docs anyway.

The more I think about this the more I think nesting and aliases within a 
nest should probably be done in a different queryset method. Or just 
handled by a serialiser. If you want more requests per second, then add 
some more backends.

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/35310a81-737b-43e1-b034-94d68f9ffd0f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to