2

我有以下型号:

class Hashtag(models.Model):
    ...
    created = models.DateTimeField(auto_now_add=True)
    ...

class Tweet(models.Model):
    ...
    hashtags = models.ManyToManyField(
        to='Hashtag',
        through='TweetHashtag',
        through_fields=('tweet', 'hashtag'),
    )
    ...


class TweetHashtag(models.Model):
    comment = models.ForeignKey(
        to='Tweet',
        on_delete=models.CASCADE,
    )
    hashtag = models.ForeignKey(
        to='Hashtag',
        on_delete=models.CASCADE,
        related_name="tweets"
    )
    created = models.DateTimeField(auto_now_add=True)

我的问题是当我收到一条推文时,我想通过创建来获取主题标签。

tweet = Tweet.objects.get(id=1)
hashtags = list(tweet.hashtags.all())

当我检查时hashtags,我看到主题标签的顺序不正确。我想通过(模型)获得tweet.hashtags订单。through_model.createdcreatedTweetHashtag

到底有没有?我有一个想法,但我不知道该怎么做。这个想法是覆盖hashtagsTweet 模型中的关系管理器。

有什么办法吗?

4

1 回答 1

1

您可以使用[Django-doc]HashTag订购s :.order_by(…)

tweet = Tweet.objects.get(id=1)
hashtags = list(tweet.hashtags.order_by('tweethashtag__created'))
于 2022-01-17T19:47:36.530 回答