Как создать пользовательский упорядоченный список в python?
Допустим, у 3 пользователей по 2 твита. Их имена @red, @blue, @yellow. Текущий список выглядит следующим образом
Модель твита:
class Tweet(models.Model):
title = models.CharField(max_length=255)
created = models.DateTimeField(auto_now_add=True)
image = models.ImageField(upload_to="photos/", blank=True, null=True)
url = models.TextField()
approved_by_moderator = models.BooleanField(default=False)
tweeter = models.ForeignKey(
Profile,
on_delete=models.CASCADE,
)
модель пользователя (профиль):
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
handle = models.TextField(max_length=500, blank=True)
slug = models.SlugField(unique=True, default=uuid.uuid1)
tweets = ["@red", "@red", "@blue", "@yellow", "@yellow", "@blue"]
Но я хочу, чтобы порядок был следующим:
tweets = ["@red", "@blue", "@yellow", "@red", "@blue", "@yellow"]
Мой текущий метод заключался в том, чтобы перебирать пользователей и добавлять список с их изображением, например:
total_images = len(images)
list = []
i = 0
while i < total_images:
for user in users:
if user.tweet:
list.append(user.tweet)
i += 1
но это не работает. Спасибо!
Сначала необходимо создать список твитов следующим образом
profiles = Profile.objects.all()
for userprofile in profiles:
usertweets = Tweet.objects.filter(tweeter=userprofile)
for tweet in usertweets:
list.append(tweet)
возвращает список вида ['@red', '@red', '@blue', '@blue', '@yellow', '@yellow']
Тогда вам следует посмотреть этот ответ https://stackoverflow.com/a/56769947/20201937