问题标签 [django-custom-tags]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
991 浏览

django - Django模板标签从模型输出图像

我是 Django 新手,刚刚开始我的第一个项目。我有一个位于 common.utils.abstact_models.py 的模式:

也许这也会有用。我有另一个模型:

我有图片上传到MEDIA_URL/uploads/event_photos

我需要编写一个模板标签来输出当前用户的照片。让我们说10张照片。我几乎没有任何代码,我从一些开始。

你对编写这个模板标签有什么建议吗?

0 投票
2 回答
540 浏览

django - Django:自定义模板简单标签应该引发异常还是静默失败?

我试图从官方文档中找到这个问题的答案,但我能找到的只是:

render() 永远不应引发 TemplateSyntaxError 或任何其他异常。它应该静默失败,就像模板过滤器应该

但以上内容并没有真正回答这个问题,也许让我更加困惑,因为它适用于常规的自定义标签,而我关心的是简单的标签

这是一个示例(以及问题本身):

如果您的答案是引发异常,那会是TemplateSyntaxError异常还是其他异常?

0 投票
1 回答
3124 浏览

django - 如何从文件中加载自定义 Django 标签?

我在 mytag.py 文件中有一个 mytag 的标签定义。当我使用带有 settings.py 和 INSTALLED_APPS 的 Django 项目时,这很好用——我将“myapp”附加到列表中,并将 mytag.py 放在 myapp/templatetags 中。

现在我正在使用 django.conf.settings.configure 并且我没有带有 templatetags 子目录的模块——如何加载 mytag.py?


更新:

我现在尝试使用带有 templatetags 目录的模块,但我无法让它工作。这是我的设置:

文件:

  • 我的应用
    • __init.py__
    • 模板标签
      • __init__.py
      • mytag.py
  • 程序
    • 测试.py
    • 测试.html

这是相关代码:

当我运行 test.py 时,我收到以下消息:

0 投票
2 回答
531 浏览

python - 在 Django 中实现自定义模板标签时遇到问题

我正在尝试使用我的应用程序实现一些自定义模板标签,并更好地构建它。烦人的部分是我已经按照教程类型的帖子获取代码,但它仍然无法正常工作。

我试图按照这个current_time来实现一些标签,但是我遇到了我不明白的错误。

首先,最新帖子的过滤器,或者在我的情况下,最新的屏幕给出 Exception Value: No module named gallery

我的项目称为“S3gallery”,我的应用程序称为“gallery”,我的模型称为“screenshots”。标签的模型参数在文档中说它需要 app_name.Model_name 这是我给它的,所以我坚持这一点。

我的自定义标签代码如下所示;

我尝试将其加载到模板中{% load get_latest gallery.screenshots 5 as recent_screens %},并且我看到的示例没有在标签中使用“加载”,但如果我这样做,Django 将无法识别该标签。我是否迷失了方向,但认为我会走正确的路。对此的任何帮助将不胜感激:)

0 投票
3 回答
177 浏览

python - 编写将整数分钟转换为“X 小时 Y 分钟”格式的字符串的函数的最佳方法是什么?

我目前有我的 Django 自定义模板过滤器,如下所示:

一些可能的输出:

' '.join(....split())诀窍是我从这个解决方案中得到的东西。我意识到我只需要在字符串的开头或结尾检查额外的字符串(当它是 0 小时或 0 分钟时),但它似乎可以解决问题,而且对于某些人来说,它可能比正则表达式更容易阅读人们。

我也觉得我违反了 DRY,因为我重复了几乎完全相同的if-then块两次。我在想类似的东西...

但我不知道如何在没有另一个if-then块的情况下在“小时”或“分钟”之间进行选择。另外每行的两个速记if-then也看起来有点难看......

我将不胜感激任何建议或提示。谢谢!

0 投票
1 回答
72 浏览

django - Django 自定义标签

我正在构建一个自定义标签,我必须在其中传递多个参数。我可以使用 , 分隔列表作为参数,但在传递该列表中的对象时遇到问题。

我调用它并在html中传递这样的参数

在上述情况下,我通过 pk 和 100 、 100 并且它工作正常。但我必须通过另一件事是对象。{{ image.pk|mytag:"100,100,{{image.name}}"}} 但这不起作用尝试了不同的语法但没有成功。

0 投票
2 回答
1084 浏览

django - 模型属性中的 Django 用户注入

我在 Django 中有这个模型:

关系是:

问题是用户(在请求/会话中):用户可能订阅了一个反应,或者一个评论;他可能已登录或未登录。(这是一个 foo 的例子,它没有多大意义)

我不能在模板中做:

问题是:

  • 我不能用参数调用模板中的方法(见上面的评论)
  • 模型无权访问请求

现在我init_user在模型中调用一个方法News,传递请求。然后我在CommentReaction模型中有相同的方法,我必须设置user_subscribed属性循环每个模型的孩子。

难道没有更聪明的方法来做到这一点吗?

编辑:感谢 Ignacio 关于使用自定义标签的提示,我正在尝试使用通用模式来传递用户(避免使用闭包,因为我不知道如何在 atm 使用它们):

当我使用它时,我{% inject_user object.method_that_receives_a_user request.user %}遇到了这个错误'str' object is not callablemethod_injected(user)我该如何解决?

0 投票
1 回答
4360 浏览

python - 通过包含标记传递上下文变量

执行检查以查看用户是否参加。如何在is_attending不出现语法错误的情况下将上下文变量传递给模板'is_attending': context['is_attending']?检查基本上是用于样式 div 和诸如此类的东西。我究竟做错了什么?

模板:

过滤器.py

谢谢!

0 投票
2 回答
566 浏览

django - django 包含标签 kwargs 错误说“函数需要 2 个参数”

我已经写了包含标签,它需要上下文和 *args 和 **kwargs

模板:

我的代码有什么问题?

0 投票
1 回答
748 浏览

django - 是否可以使用 django 的自定义模板标签在模板的其他块中插入代码?

我正在编写一个自定义模板标记,该标记用一些代码包装一个 HTML 元素以使其可编辑。这由一些 CSS 支持,而 JS 负责将数据发送到服务器以保存它。

该组件需要包含

在页面底部和

在顶部。

我已经在页面模板中有两个“js”和“css”模板块。

我的问题 - 如果我的标签存在,自定义模板标签是否可以在相关页面块中包含这些脚本一次?

我输入的IE:

并且“js”和“css”模板块填充了相关的脚本\链接标签?

(我不想在每个页面中都预先包含这些,因为只有我的一些页面会使用这个标签)