DJANGO: How to sort objects based on attribute of a related model?
Asked Answered
W

1

11

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?

Wigwam answered 7/5, 2012 at 19:47 Comment(0)
M
16
User.objects.order_by('last_name', 'userprofile__title')
Magnetite answered 7/5, 2012 at 19:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.