如何在代码中对"流行度"概念进行建模?



我正在构建一个tagsDjango应用程序,以显示按";受欢迎程度">

目前,models.py中的Tag模型如下所示:

class Tag(models.Model):
tag = models.CharField(max_length=64, unique=True)
slug = models.SlugField(max_length=64, unique=True)

最终,我想在views.py中查询index视图中的标签,如下所示:

def index(request):
context = {"tags": Tag.objects.order_by("popularity")}
return render(request, "tags/index.html", context)

我如何为";流行度";代码中的概念?

我应该在Tag模型中添加一个popularity字段,并基本上计算一个标签被使用了多少次,还是有更好、更巧妙的方法来实现相同的结果?

django taggit

您可以实现django-taggit或阅读文档,然后您将了解如何在django中实现标记。

快乐编码:(

#models.py

class Tag(models.Model):
tag = models.CharField(max_length=64, unique=True)
slug = models.SlugField(max_length=64, unique=True)

@property
def popularity(self):
return self.foo_set.count()

class Foo(models.Model):
tag = models.ManyToManyField(Tag, blank=True)

#views.py

def index(request):
context = {"tags": sorted(Tag.objects.all(), key=lambda x: x.popularity, reverse=True)}
return render(request, "tags/index.html", context)

#html

{% for tag in tags %}
{{ tag.tag }} - {{ tag.popularity }}
{% empty %}
No Tags
{% endfor %}

相关内容

  • 没有找到相关文章

最新更新