Django - how do I select a particular column from a model?
django
Solution
Use `values()` or `values_list()`.
If you use `values()`, You'll end up with a list of dictionaries (technically a `ValuesQuerySet`)
instance = MyModel.objects.values('description')[0]
description = instance['description']
If you use `values_list()`, you'll end up with a list of tuples
instance = MyModel.objects.values_list('description')[0]
description = instance[0]
Or if you're just getting one value like in this case, you can use the `flat=True` kwarg with `values_list` to get a simple list of values
description = MyModel.objects.values_list('description', flat=True)[0]
See the official documentation
Problem
I had a sniff around SO and couldn't find this, but I am sure it is here somewhere. Apologies for this potential double post! If I have this code: ``` return Story.objects.filter(user=request.user.id).order_by('-create_date') ``` and say Story has, um, a "description" field, and I just want that description field, no need for the db to send anything else back with my result, how do I limit the query to just that? That is, how do I generate this SQL: ``` select description from story where user_id = x order by create_date desc ``` (where x is the request.user.id value, of course)