I have a User model and UserProfile model. In the User model I'd like to order my query so that its in alphabetical order by last_name. Then I'd like to order it by the User_profiles "title" attribute (Manager, Executive, Accountant etc).
MODELS:
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
title = models.CharField(max_length=20)
VIEW:
def user_index(request):
i = User.objects.all().order_by('last_name', 'title')
return render_to_response('db/user_index.html', {'i': i ,}, context_instance=RequestContext(request))
"Title" is not an attribute of the User model, but is related to User by the UserProfile model. How can I sort by alphabetical order for UserProfile.title?
A simple solution is to use the list. sort() function to sort a collection of objects (using some attribute) in Python. This function sorts the list in-place and produces a stable sort. It accepts two optional keyword-only arguments: key and reverse.
User.objects.order_by('last_name', 'userprofile__title')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With