问题标签 [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 投票
2 回答
243 浏览

django - Django 从嵌套应用程序加载模板标签无法正常工作

文件结构:

test_tag.py 包含:

test.html 包含:

Django 1.5 外壳(python manage.py 外壳):

Django 1.5 的设置:

但是 Django 1.5 会产生异常 TemplateSyntaxError:

PS:服务器重启,*.pyc 文件被删除,但问题存在。当“newapp”位于 / project /newapp/ 时 - 一切正常。

0 投票
1 回答
434 浏览

django - Django:自定义模板标签递归调用

我有一个模型树,并使用模型使用自定义模板标签自行递归渲染。

每个 Widget 模型都有自己的模板和上下文数据,并且可以自己渲染。小部件可能有子小部件模型,子小部件将首先被渲染,父小部件可以组装它们。

并且模板使用自定义标签。

型号代码

标记代码

模板代码

我有两个问题:

  • template.Variable 为空,可能是逻辑错误或其他错误。
  • 自定义标签在 for 循环中没有意义,它不会在循环中调用。

非常感谢任何建议。

谢谢。

0 投票
1 回答
118 浏览

django - 如何访问从 Django 模板中的自定义标记返回的元组的一部分?

我有一个函数,它使用以下自定义标签将非当前用户的名字和姓氏作为元组返回,其中 foo 是活动目录中的用户名:

我想访问元组的第一个元素,我能想到的唯一语法是:

这是不正确的。我怎样才能做到这一点?

0 投票
1 回答
762 浏览

python - 自定义模板标签 - 返回对象

我有一个 base.html,它被所有其他页面继承。并且所有页面的页脚也来自 base.html

现在我想在页脚中显示一些来自 db 的对象。所以我需要将一些对象从 db 渲染到 base.html。然后我想,我会写我自己的标签来完成这项工作。

我做了这个自定义标签:

我要返回柏林最近的 4 个地点。

然后在我的模板中:

但现在我被困在如何在模板中显示它。此刻,{% berlin_tag %}正在显示[, , ]

我如何遍历所有 4 个对象并在模板中显示它们?请帮忙

0 投票
0 回答
69 浏览

django - 在许多模板中使用小模板:自定义标签或基于类的视图?

我最近发现了什么是包含可以重复并且我们可以在许多页面上找到的小块模板的最佳方式。我不是以 Django 的方式称它们为“小部件”(如果我引用文档,小部件是输入元素的表示),而是以它们可以停靠到网站的任何页面的方式。我想:与文章相关的评论列表、右侧菜单中的聊天框、评论表单或其他...

问题是我只看到两种解决方案,一种比另一种更好,但并不完全让我满意。

  • 基于类的视图:我认为最好的方法是使用 mixins。
    • 优点:以有效的方式处理表单,逻辑保持不变(表单处理,数据库查询在必须完成的地方完成)。例如,当我们从 CommentListMixin 继承时,我们真正创建了文章与其评论之间的现有关系。
    • 缺点:我们必须显式地从相应的mixin继承。我们不能做我们想做的所有事情,因为从 mixins 和视图都继承可以覆盖其中一个的属性。
  • 自定义标签:我认为这是更糟糕的方式。标签不存在呈现模板的一部分(使用数据库查询,创建表单),而是“操纵”数据,以特定方式呈现它。
    • 优点:不需要在视图中显式调用,“全部”在模板中(不应该)。
    • 缺点:处理表单很棘手,当我使用它们来完成一个视图应该完成的工作时,逻辑被打破了。

现在,我听到你说:“所以,你应该使用基于类的视图和混合”。实际上不,当我将它们用于“小部件”(作为 mixin 实现)以显示与当前文章相关的评论列表时,这不是问题,我只需将相关的 mixin 添加到当前视图中。但是当我想在我网站的所有页面上放置一个“小部件”时,它就成了一个问题。例如,聊天框与特定文章无关,我不想在我的所有视图上添加 ChatBoxMixin(如果我决定从我的网站中删除它怎么办?)。所以在这个例子中,我应该使用自定义标签,因为我相信这是轻松完成它的最佳方式。

有人可以减轻我的负担吗?

0 投票
0 回答
500 浏览

javascript - 在 Django 模板中生成带有自定义标签的 Javascript

我的问题有点不寻常。在我的项目中,我有一个静态 js 文件,其中定义了许多函数。然后在每个模板中我都有一个脚本标签,我在其中定义了这个模板的必要变量,并从静态文件中调用我需要的函数。视图除了渲染模板什么都不做。所以我的模板看起来像:

视图看起来像:

我必须做的是,不必在模板中手动编写脚本标签,而是拥有一个自定义模板标签,您可以将所需的变量传递给该标签并返回相应的脚本。我必须这样做的原因是让将使用该应用程序的人避免编写脚本而只写如下内容:

我真的不知道该怎么做,或者这是否是正确的方法。要点是使用自定义标签而不是编写脚本,那么您认为应该怎么做呢?

0 投票
1 回答
642 浏览

django - 在 Django 中,是否可以从包含标记内的父模板上下文访问当前用户会话?

众所周知,如果我们想从包含标签中的上下文访问用户会话,您可以使用takes_context参数并在视图中传递请求上下文。

但在我的项目中,它更复杂:

观点很简单:

模板:

这是我的自定义标签:

当我运行我的项目时,出现以下错误:

所以,我在两个标签内打印上下文以找出发生了什么,似乎请求上下文没有传递到attachment_delete_link,我该如何解决这个问题?

0 投票
0 回答
438 浏览

django - 将自定义 django 模板标签转换为 jinja 格式

我有一个问题,我试图将现有的自定义 django 模板标签实现转换为 jinja2 格式。到目前为止,我没有在哪里,我在我的项目的 templatetag 文件夹中有以下实现

我尝试阅读 jinja 文档,但我真的不知道该怎么做。我试图将其更改为 jinja 模板结构的原因是,当我尝试在模板中使用模板标签时,我收到错误提示未知模板标签实验:

我尝试使用 coffin_template 但这并没有真正帮助。

0 投票
1 回答
4810 浏览

django - Django将多个参数传递给If语句中的自定义模板过滤器

我有一个问题。我写了一个自定义模板标签,带有这样的函数签名——

现在,在我的模板标签中,我有一个条件语句来确定用户是否可以下载文章(这取决于文章是否超过两年或登录用户已为文章付费)。这是片段-

上述代码段工作正常,但是我需要在条件语句中调用 has_paid_for_article() 函数。我尝试了以下方法来实现这一点-

,

这个在条件语句之外工作 -

这里的正确语法是什么?另外,我已经阅读了有关该主题的其他帖子,我不能将此逻辑放在视图中。我不会详细介绍,但就其工作方式而言,这不是一个选择。谢谢!

0 投票
1 回答
2917 浏览

python - Django order_by() 没有正确排序

我在 Django 上的 2 个地方设置了以下查询,唯一的问题是限制并给了我不同的结果

这是以下 QuerySet 的第一个结果

在此处输入图像描述

正确的结果应该是:

19,13,9 而不是 9,19,13 明白我的意思吗?

这是第二个查询集

这是结果

在此处输入图像描述

正确的结果应该是:

19,13,9,1 而不是 1,13,19,9 明白我的意思吗?

模型.py