1๐
โ
Iโm a django newbe, but recently I had similar problem.
Maybe it will make it for You.
I had users based on django User model and Movies with field owner. I wanted to display last 2 movies of every user, grouped by users and sorted by movie publication date.
What I did, was:
-
Create and add method to User model (it returns list of 2 movies of user):
from django.contrib import auth def get_users_last_movies(self): movies = Movies.objects.filter(state=3, pubdate__lte=datetime.now(), owner=self).order_by('-pubdate')[0:2] return movies auth.models.User.add_to_class('get_users_last_movies', get_users_last_movies)
-
in view file select all Users your interested in and append their movies to them, use sort method on created user list
dusers = User.objects.filter(is_active=True) users = [] for duser in dusers: duser.movies = duser.get_users_last_movies() users.append(duser) users.sort(key=lambda x: x.movies[0].pubdate, reverse=True) data['dusers'] = users
Hope that this code will get You on track
๐คKwiatekP
Source:stackexchange.com