Є об'єкти із різною структурою:
class Tweet(models.Model):
user = models.ForeignKey(User)
text = models.CharField(max_length=140)
created = models.DateTimeField(auto_now_add=True)
country = models.CharField(max_length=30, blank=True)
class Retweet(models.Model):
tweet = models.ForeignKey(Tweet)
user = models.ForeignKey(User)
created = models.DateTimeField(auto_now_add=True)
Отримуємо списки цих об'єктів:
Для їх злиття можна використати функцію chain:tweets = Tweet.objects.filter(user=user_profile).order_by('-created')
retweets = Retweet.objects.filter(user=user_profile).order_by('-created')
from itertools import chain
all_tweets = chain(tweets, retweets)
Додамо параметр сортування:
from operator import attrgetter
all_tweets = sorted(chain(tweets, retweets), key=attrgetter('created'))
І, врешті-решт, змінимо порядок сортування:
all_tweets = sorted(chain(tweets, retweets), key=attrgetter('created'), reverse=True)
Коментарі
Дописати коментар