对模板中的对象进行排序

2023-11-24

让这些模型:

class Category(models.Model):
    name = models.CharField(max_length=20)

class Word(models.Model):
    name = models.CharField(max_length=200)
    votes = models.IntegerField(default=1)
    categories = models.ManyToManyField(Category, null=True, blank=True)

这个观点:

def main_page(request):
    words = Word.objects.all()
    categories = Category.objects.all()
    return render(request, "main_page.html", {'words': words})

和这个模板:

{% for category in categories %}
    {% for word in category.word_set.all %}
    <p>{{ word }}</p>
    {% endfor %}
{% endfor %}

我想分别按投票数和发布日期对模板中的单词进行排序。我怎样才能做到这一点?


你(们)能做到自定义模板标签或过滤器,它将单词集和排序类型作为参数。

例如(未测试):

自定义标签.py:

from django import template
register = template.Library()

@register.filter
def sort_by(queryset, order):
    return queryset.order_by(order)

模板.html

{% load custom_tags %}
...
{% for word in category.word_set.all|sort_by:'-votes' %}
    <p>{{ word }}</p>
{% endfor %}
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对模板中的对象进行排序 的相关文章

  • Visual Studio Code 中的 Pylint“未解析的导入”错误

    我正在使用以下设置 macOS v10 14 https en wikipedia org wiki MacOS Mojave 莫哈韦 Python 3 7 1 Visual Studio 代码 1 30 皮林特 2 2 2 姜戈2 1 4
  • Django 权限

    我希望在我的 Django 项目中拥有更细粒度的权限 但无法决定使用哪个应用程序 我所拥有的是这样的 class Item models Model name models CharField max length 64 unique Tr
  • ImproperlyConfigured at / 不允许空静态前缀 - Django

    我正在使用 Django 上传 显示图像 该网站部署在 Heroku 上 下列的this https coderwall com p bz0sng教程我能够成功上传图像 但是 图像并未显示在模板中 然后我了解到我的 urls py 末尾应该
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序
  • HTMX 传递所选列表中的按钮值

    我正在尝试使用 Django 使用 htmx 制作一个应用程序 我创建了一个下拉列表
  • 将 VueJs 组件添加到 Django 模板中

    我正在开发一个 Django 网站 我希望将一些 Vue 组件 散布 到 Django 渲染的模板中 我正在单个存储库中工作 并使用 webpack 设置来创建我在 Django 模板中使用的 style js 包 我正在努力让功能按照我想
  • Django,按当前登录用户过滤多对多模型表单中呈现的集合

    我知道它就在那里 但我找不到它 所以我有一个 类别 模型和一个 书籍 模型 其中有多对多的 类别 在模型表单中创建新书时 所有类别都会呈现给用户以分配给该书 在这种情况下 我只希望当前用户创建的类别显示在该字段中 而不是所有类别 最好的方法
  • 使用 GeoDjango 在坐标系之间进行转换

    我正在尝试将坐标信息添加到我的数据库中 添加django contrib gis支持我的应用程序 我正在写一个south数据迁移 从数据库中获取地址 并向 Google 询问坐标 到目前为止 我认为我最好的选择是使用geopy为了这 接下来
  • 将 JSON 字符串传递给 Django 模板

    我一直在用头撞墙 试图找出为什么我无法将从 Django 模型生成的 JSON 字符串传递到模板的 javascript 静态文件中 事实证明 问题不在模型级别 使用serializers serialize 在脚本本身中放入相同的字符串将
  • Django Azure AD 集成

    我目前正在使用 Azure AD 将 SSO 集成到 Django 项目中 我目前正在使用该包 https github com leibowitz django azure ad auth https github com leibowi
  • 在 Celery 中,我如何运行一个任务,然后让该任务运行另一个任务,并保持下去?

    tasks py from celery task import Task class Randomer Task def run self kwargs run Randomer again return random randrange
  • 使用自定义用户模型时缺少组和权限分配

    我正在构建一个具有通过 Django Groups 定义的多个角色的应用程序 我从自定义用户模型开始 定义如下 我发现使用自定义用户模型时使用的组和权限存在奇怪的差异 例如继承丢失了某些内容 我想使用自定义用户模型 因此我不使用用户名 但我
  • 编程错误:安装 Psycopg2 后关系“django_session”不存在错误

    我开始开发一个基于 Django 的 Web 应用程序 一切都很好 直到我安装Psycopg2对于我创建的数据库PostgreSql 现在 当我尝试打开网站中的任何页面时 它会抛出ProgrammingError relation djan
  • 如何计算查询集中每个项目的两个字段的总和

    假设我有以下模型结构 class SomeModel Model base price DecimalField commision DecimalField 我不想存储total price在我的数据库中为了数据一致性并希望将其计算为ba
  • 如何在自定义 django 命令中抽象出命令代码

    我正在我的应用程序下编写自定义 django 命令management commands目录 目前我在该目录中有 6 个不同的文件 每个文件都有不同的命令来解决独特的需求 然而 有一些实用程序是它们所共有的 抽象出这些公共代码的最佳方法是什
  • Python - 将 XLSX 转换为 PDF

    我一直用win32com我的开发服务器中的模块可以轻松转换xlsx to pdf o win32com client Dispatch Excel Application o Visible False o DisplayAlerts Fa
  • Timezone.now() 与 datetime.datetime.now()

    我什么时候应该使用 djangotimezone now 我什么时候应该使用 python 的datetime datetime now 例如 在下面的例子中INSERT哪个更有意义 Product objects create title
  • Django 序列化器与rest_framework 序列化器

    有什么区别Django serializers vs rest framework serializers 我制作了一个 Web 应用程序 我希望 API 成为项目创建的主应用程序的一部分 不为 API 功能创建单独的应用程序 我需要为 D
  • 将 LDAP 用户导入 django 数据库

    我想将 ActiveDirectory 数据库的用户导入 Django 为此 我尝试使用 django auth ldap 模块 这是我已经尝试过的 在我的 settings py 中 AUTH LDAP SERVER URI ldap e

随机推荐