【发布时间】:2022-01-17 19:26:31
【问题描述】:
我有以下型号:
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 时,我发现主题标签的顺序不正确。我想通过through_model.created 获得tweet.hashtags 的订单(created 的TweetHashtag 模型。)
还有吗?
我有一个想法,但我不知道该怎么做。这个想法是在 Tweet 模型中覆盖 hashtags 的关系管理器。
有什么办法吗?
【问题讨论】:
标签: django django-rest-framework django-orm django-managers drf-queryset