假设我有一个照片模型和一个标签模型
class Post(models.Model):
user = models.ForeignKey(User, related_name = 'posts_owned')
created = models.DateTimeField(auto_now_add=True)
description = models.CharField(max_length=255, blank=True)
media_url = models.URLField(max_length=225, blank=True)
related_hashtag = models.ManyToManyField('Hashtag', related_name = 'tagged_post', null=True, blank=True)
class Hashtag(models.Model):
hashtag = models.CharField(max_length=60, unique = True)
count = models.IntegerField(default=1)
如何按照插入的顺序查询ManyToMany字段中的帖子? ManyToMany表中每行都有主键,我想按ManyToMany字段的ID排序。
我尝试了以下方法:
queryset = Post.objects.filter(related_hashtag__hashtag = hashtag).order_by('-related_hashtag__id')
但这是不起作用的。我需要按相关哈希表中的PK进行排序。
这可行吗?我应该使用原始SQL吗?如果我要使用原始SQL,它会是什么样子?
目前,我是这样做的:
queryset = Post.objects.filter(related_hashtag__hashtag = hashtag).order_by(-pk)
但是问题在于,它按照帖子ID的降序排列。我还有一个评论模型,从中可以创建和附加到帖子上的标签。所以按照帖子PK进行排序是行不通的。有什么建议或解决方案吗?