Python 寻找最流行的标签Taggit Tastypie Django 上下文

Python 寻找最流行的标签Taggit Tastypie Django 上下文,python,django,tastypie,django-taggit,Python,Django,Tastypie,Django Taggit,我一直有冲突。目前,我正在创建一个问答应用程序。每个问题都有一个标签,我想展示最流行的标签(例如,与之关联的问题最多的标签) 细节 我正在使用django taggit的TaggableManager来实现这一点。以下是问题的模型定义: class Question(models.Model): tags = TaggableManager() date = models.DateTimeField(default=timezone.now) text = models.

我一直有冲突。目前,我正在创建一个问答应用程序。每个问题都有一个标签,我想展示最流行的标签(例如,与之关联的问题最多的标签)

细节 我正在使用django taggit的
TaggableManager
来实现这一点。以下是
问题的模型定义

class Question(models.Model):
    tags = TaggableManager()
    date = models.DateTimeField(default=timezone.now)
    text = models.TextField(null=True)
现在我把几个标签贴在了问题上

问题: 我如何制作一个tastypie资源来显示标签,并按照与标签相关的问题最多的标签对标签进行排序

我的尝试 我真的只有一次相当成功的尝试来实现这一目标。以下是tastypie资源:

class TagResource_min(ModelResource):
     def dehydrate(self, bundle):
          bundle.data['total_questions'] len(Question.objects.filter(tags__slug=bundle.obj.slug))
          return bundle  
     class Meta:
          queryset=Tag.objects.all()
返回一个漂亮的JSON,其中包含一个名为
total_questions
的变量,该变量包含与之相关的问题数。虽然脱水是在指定的请求周期的
sort\u
部分之后,所以我不能按照
total\u问题对资源进行排序。以下是JSON:

{

    "meta": {
        "limit": 20,
        "next": null,
        "offset": 0,
        "previous": null,
        "total_count": 13
    },
    "objects": [
        {
            "id": 1,
            "name": "testing tag",
            "resource_uri": "/full/tag/1/",
            "slug": "testing-tag",
            "total_questions": 2
        },
        ...]
}
另一次尝试,我尝试了另一种方式,试图使
查询集
问题
模型形成:

 queryset=Question.objects.filter(~Q(tags__slug=None)).values('tags', 'tags__slug').annotate(total_questions=Count(Tag))
问题是,
filter
函数将结果转换为
dict
类型,而不是
models.Model
类型。关键区别在于
models.Model
具有属性
pk
,这是一种标识类型,而
dict
没有该属性


任何贡献都是值得赞赏的!谢谢大家!

似乎很难计算所有标签的数量,如果有人有任何其他方法来计算标签的数量,而不是使用
taggit
,我很想听听或看看参考资料。你找到解决方案了吗?我也在寻找同样的方法。似乎很难计算所有标签的数量,如果有人有其他方法计算标签的数量,而不是使用
taggit
,我很想听到或看到参考。你找到解决方案了吗?我也在找同样的。