Django - 简单的自定义模板标签示例

2023-11-26

I have users, videos, topics, 标准 and ratings

  • A video has a topic
  • A topic has 标准
  • A user可以创建一个video对于给定的topic
  • A user可以评价一个video在各个标准为有关人士提供topic.

你可以看我的原帖Django - 评级模型示例 DetailView 模板获取所用型号的详细信息

我已经延长了DetailView模板基于video模型来放置列表ratings对于所选的video对于给定的user作为额外的上下文。

class VideoFileDetailView(DetailView):
  model = VideoFile

  def get_context_data(self, **kwargs):
    context = super(VideoFileDetailView, self).get_context_data(**kwargs)
    context['rates'] = VideoRate.objects.filter(video=self.object, user=self.request.user)
    return context

在指向的模板中DetailView,我想列出标准 of the video,并且对于每个criteria显示当前评级值形成user.

<div id="rating">
  <ul>
{% for crit in videofile.topic.crits.all %}
    <li>
  {% for rate in rates %}
    {% if rate.crit.id == crit.id %}
      {{ rate.rate }}
    {% endif %}
  {% endfor %}
      <div class="rateit"
        data-rateit-value="{# The rating value #}"
        data-rateit-ispreset="true"
        crit-id="{{ crit.id }}"></div>
      {{ crit }}
    </li>
{% endfor %}
  </ul>
</div>

(rateit是一个jquery插件,我用它来绘制漂亮的星级评级控件)

事实上,我在第二次内得到了我的评级值for但我确信有更好的方法可以做到这一点。事实上,我仍然不确定我的model正确性。

最后我想更换{# The rating value #}通过当前暴击率的评级值(在循环中)。我怎样才能做到这一点 ?


这是我的解决方案(基于自定义标签):

首先创建文件结构。进入需要标签的app目录,添加以下文件:

templatetags
templatetags/__init__.py
templatetags/video_tags.py

The 模板标签/video_tags.py file:

from django import template

register = template.Library()

@register.simple_tag
def get_rate(crit, rates):
    return rates.get(crit=crit).rate

模板部分,带有我们的标签调用:

{% load video_tags %}

<div id="rating">
  <ul>
{% for crit in videofile.topic.crits.all %}
    <li>
      <div class="rateit"
        data-rateit-value="{% get_rate crit rates %}"
        data-rateit-ispreset="true"
        crit-id="{{ crit.id }}"></div>
      {{ crit }}
    </li>
{% endfor %}
  </ul>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django - 简单的自定义模板标签示例 的相关文章

  • Django 星级评定系统和 AJAX

    我正在尝试在 Django 网站上实现星级评级系统 在我的模型中存储评级是排序的 就像在页面上显示分数一样 但我希望用户能够对页面进行评分 基本上从 1 到 5 而无需刷新或更改页面 我发现了以下内容 并且喜欢这里明星的风格 http jv
  • 使用 Google App Engine 和 Django 将第三方库 (twilio) 添加到项目中

    每个人 我是这个领域的新手 我使用 django 框架使用 google 应用引擎开发 Web 应用程序 我有一个关于 python lib dir 问题的故障排除 导入错误 没有名为 的模块 我的 appengine config py
  • Django 中的行级权限

    有没有办法在 django 中进行行级权限 我以为没有 但只是在文档中注意到了这一点 权限不仅可以按对象类型设置 还可以按对象设置 具体的对象实例 通过使用 has add permission 提供了 has change permiss
  • 使用 Django ModelForm 上传个人资料图片

    我环顾过相关问题 但似乎没有一个答案有效 我正在尝试上传用户的个人资料图像并让它替换 覆盖 当前图像 保存图像后 我想将文件名更改为用户 ID 图像将以当前形式上传 但不会替换现有图像 例如 它将保存为 2 1 png class Phot
  • 带有 ManyToMany 和直通表的 Graphene-django

    我的应用程序有多个多对多关系具有贯穿模型像这样 class Person models Model name models CharField class Group models Model name models CharField m
  • Django 迁移 RunPython 无法调用模型方法

    我正在使用以下命令创建数据迁移RunPython方法 但是 当我尝试在对象上运行方法时 没有定义任何方法 是否可以使用调用模型上定义的方法RunPython 模型方法在迁移中不可用 包括数据迁移 然而 有一个解决方法 它应该与调用模型方法非
  • 如何从 django imageFile 输入中获取图像

    我想从ImageField文件输入然后在模板中显示图像 最后将图像保存到模型中imageField The file image request POST get image 只获取图像名称 如何获取实际图像 我需要将图像上传到NamedT
  • Django/Python:电子邮件回复已更新到站点[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Django 中扩展 User 对象:用户模型继承还是使用 UserProfile?

    要使用自定义字段扩展 User 对象 Django 文档建议使用用户资料 http docs djangoproject com en dev topics auth storing additional information about
  • 我可以从另一个视图中调用一个视图吗?

    我的一个视图需要添加一个项目以及其他功能 但我已经有另一个专门添加项目的视图 我可以做类似的事情吗 def specific add item view request item Item objects create foo reques
  • 如何为 bcrypt.hashpw 设置盐?

    salt yhnqazolr123098765 password bcrypt hashpw password salt repeatpassword bcrypt hashpw repeatpassword salt 我在第二行遇到错误
  • Django modelAdmin __init__ 和内联

    嘿 我对 Django 相当陌生 我正在寻找动态编辑管理类变量 完整的想法是在添加时隐藏内联 仅在编辑时显示 但我在这里提炼这个问题 有人可以解释为什么这不起作用吗 class dbTablePermissionInline admin T
  • Django 如何将自定义变量传递到上下文以在自定义管理模板中使用?

    我正在扩展change list html 我需要输出settings py中定义的变量 如何将该特定变量传递到自定义管理模板上下文中 class MyModelAdmin admin ModelAdmin def changelist v
  • Tastypie 与 application/x-www-form-urlencoded

    我有点难以弄清楚下一步应该做什么 我正在使用 tastypie 为我的 Web 应用程序创建 API 从另一个应用程序 特别是 ifbyphone com 我收到一个没有标题的 POST 如下所示 post data http myapp
  • django 在查询中计算相同字段值的最有效方法

    假设我有一个包含很多字段的模型 但我只关心一个 charfield 可以说 charfield 可以是任何东西 所以我不知道可能的值 但我知道这些值经常重叠 所以我可以有 20 个带有 abc 的对象和 10 个带有 xyz 的对象 或者我
  • Django:管理中的 AJAX ManyToManyField

    我要显示ManyToManyFields 在 admin 中就像filter horizontal确实如此 但会在用户在过滤器字段中键入内容时填充选项 有很多选项 一次性加载它们需要很多时间 I found django ajax 过滤字段
  • Django在模板中形成多个选择框大小

    我有一个模板
  • 将文件夹和文件结构从 django 1.3 迁移到 django 1.4 的最佳方法是什么?

    我有一个使用 django1 3 创建的小项目 我想将其迁移到 django1 4 但由于文件结构发生了一些变化 最好的迁移方法是什么 Read https docs djangoproject com en dev releases 1
  • 使用 Http Post 发送图像

    我想使用 Http Post 将图像从 android 客户端发送到 Django 服务器 该图像是从图库中选择的 目前 我正在使用列表值名称 Pairs 将必要的数据发送到服务器并接收来自 Django 的 JSON 响应 是否可以对图像
  • django 如何循环遍历通用详细视图传回的上下文对象?

    我正在使用通用 DetailView 来显示项目对象 我可以在模板中以某种方式循环遍历这些字段吗 还是必须放置每个字段 url r P

随机推荐

  • 是否有一种颜色混合算法可以像混合真实颜色一样工作?

    常见的 RGB 颜色混合与绘画颜色的混合有很大不同 它是光的混合而不是颜料的混合 例如 Blue 0 0 255 Yellow 255 255 0 Grey 128 128 128 应该是蓝色 黄色 绿色 是否有任何已知的颜色混合算法可以像
  • 如何复制 iOS 10 的 Apple Music“查看和弹出操作菜单”

    iOS 10 有一个我想复制的功能 当您在 Apple Music 应用中 3D 触摸专辑时 它会打开如下所示的菜单 然而 与普通的窥视和弹出不同 当您抬起手指时 它不会消失 我该如何复制这个 我最接近复制它的是以下代码 它创建了音乐应用程
  • 异步/等待与BackgroundWorker

    这几天我测试了 net 4 5和c 5的新特性 我喜欢它的新异步 等待功能 早些时候我用过后台工作者使用响应式 UI 在后台处理较长的进程 我的问题是 在拥有这些不错的新功能之后 我什么时候应该使用 async await 以及什么时候使用
  • 如何关闭弹出窗口并重定向父窗口

    string dialog url http www facebook com dialog oauth client id app id redirect uri Server UrlEncode my url scope permiss
  • 如何从 MATLAB 中的字符串输入创建函数指针?

    如果我使用inlineMATLAB 中的函数 我可以创建一个函数名称 该函数名称可以根据之前的选择做出不同的响应 if someCondition p inline a b a b else p inline a b a b end c p
  • 使用通配符复制多个文件/使用 Wix 递归复制

    我对 Wix 以及一般的安装人员 完全是菜鸟 所以请原谅我 我的目标是能够遍历目录 搜索所有 例如 exe 文件并将它们复制到预定义的目标文件夹 事情是 我don t知道这些文件是什么以及它们的名称 所以我无法在 wxs 文件中将它们一一键
  • 为什么接口的显式实现不能公开?

    我在类中有方法 它是接口的实现 当我进行显式实现时 出现编译器错误 The modifier public is not valid for this item 为什么不允许有public用于显式接口实现 显式接口实现的原因是为了避免名称冲
  • mysql表结构建议?

    这个表对mysql有用吗 我希望将来能够灵活地用于这种类型的数据存储 对于这个表结构 你不能使用主键 只能使用索引 我是否应该更改表的格式以具有标题 主键 宽度 长度 空间 耦合 ID NUM Param Value 1 Width 5e
  • Azure API 服务器无法验证请求

    我有一个任务 我尝试使用辅助角色并上传控制台应用程序并运行 exe 该任务应该每天运行一次并收集我的一些虚拟机的 Azure 指标 这在本地工作完美 但在云服务上我收到此错误 未处理的异常 Microsoft WindowsAzure Cl
  • Go 中的垃圾收集和指针的正确使用

    我有 Python Ruby JavaScript 背景 我了解指针的工作原理 但是 我不完全确定如何在以下情况下利用它们 假设我们有一个虚构的 Web API 它会搜索某个图像数据库并返回一个 JSON 描述找到的每个图像中显示的内容 u
  • CPU缓存如何影响C程序的性能

    我试图更多地了解 CPU 缓存如何影响性能 作为一个简单的测试 我将矩阵第一列的值与不同数量的总列数相加 compiled with gcc Wall Wextra Ofast march native cache c tested wit
  • 扩展 jQuery 的 .on() 以处理移动触摸事件

    我正在尝试使用 jQuery mobile 事件 而不使用 jQuery mobile 的其余部分 https github com jvduf jquery mobile events blob master jquery mobile
  • 如何透明地重定向 Python 导入?

    我正在寻找一种模拟 Python 导入符号链接的方法 我希望能够就地解压以下文件夹结构而无需复制文件 root python lib my utils init py etc py app1 app2 app3 lib init py my
  • 当没有 PYTHONPATH 时,PYTHONPATH 是什么?

    我需要向我的目录添加一个新的目录位置PYTHONPATH 但问题是我在一个干净的 新安装的系统 Linux 上 没有PYTHONPATH尚未被定义 我读过并使用过PYTHONPATH我以为我很理解它 但我不知道当没有时会发生什么PYTHON
  • 导入 Google API 字体不适用于 github 页面

    我主持了一个主题GitHub 页面 这个主题在localhost环境 但是当我托管它时 它没有应用从 Google API 导入的正确字体 区别在这里 本地主机版本 Github页面版本 这是我的Index html page
  • 如何在Android中设计任何屏幕尺寸和密度(Android手机的多屏幕)

    如何在不使用值文件夹中的维度的情况下处理 Android 手机的多屏幕设计 我的应用程序支持所有 Android 手机 我在设计上遇到了问题 因为我在值文件夹中使用 dimen 来处理它 所以请任何人都可以帮助我在不使用维度的情况下解决这个
  • stdcall 和 cdecl

    有 除其他外 两种类型的调用约定 stdcall and cdecl 我对他们有几个问题 当cdecl函数被调用时 调用者如何 知道是否应该释放堆栈 在呼叫站点 是否 调用者知道被调用的函数是 cdecl 还是 stdcall 功能 它是如
  • 计算没有 getSpeed() 方法的导航应用程序的速度

    我正在开发一个应用程序 它更像是朋友之间的时移竞赛 我需要计算移动车辆的速度 但我不想使用Location getSpeed 方法 底部详细解释了为什么我不想使用它 我正在尝试借助可用的纬度和经度来计算速度 这就是我需要帮助的地方 需要的帮
  • JPQL IN 子句:Java 数组(或列表、集合...)?

    我想加载所有将文本标记设置为数据库中任意少量但任意数量的值的对象 在 SQL 中解决此问题的逻辑方法是构建一个 IN 子句 JPQL 允许 IN 但它似乎要求我直接指定 IN 的每个参数 如 in in1 in2 in3 是否有某种方法可以
  • Django - 简单的自定义模板标签示例

    I have users videos topics 标准 and ratings A video has a topic A topic has 标准 A user可以创建一个video对于给定的topic A user可以评价一个vid