- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些值想传递给过滤器并从中获取 URL。
在我的模板中我有:
{% if names %}
{% for name in names %}
<a href='{{name|slugify|add_args:"custid=name.id, sortid=2"}}'>{{name}}</a>
{%if not forloop.last %} | {% endif %}
{% endfor %}
{% endif %}
在我的模板标签中我有:
@register.filter
def add_args(value, args):
argz = value.strip() + '-' + 'ARGS'
arglist = args.split(',')
for arg in arglist:
keyval = arg.split('=')
argz.join(keyval[0] + 'ZZ' + keyval[1])
argz.join('QQ')
return argz
输出 URL 应如下所示:
http://foo.org/john-smith-ARGScustidZZ11QQsortidZZ2
其中 ARGS 是参数的开始,ZZ 是“=”,QQ 是“&”的等价物。
首先:这可行,但我在 add_args() 中得到 custid=name.id,我希望 custid=11 进入。如何将 id 作为 id 而不是文本传递.
此外,有没有一种方法可以像在 PHP 中那样只发送一个键=>值数组。在 PHP 中,我会构建一个数组,比方说:
arglist = array('custid' => $nameid, 'sortid' => $sortid );
然后我会将 arglist 作为参数传递给 add_args()
,在 add_args()
中我会这样做
foreach( arglist as $key => $value)
$argstr .= $key . 'ZZ' . $value . 'QQ'.
有没有人有更好的方法来完成这项工作?
注意:如果我必须将所有参数作为字符串传递并在过滤器中将它们拆分,我不介意。我只是不知道如何将 name.id 作为其值传递...
最佳答案
这种“智能”逻辑不应该出现在模板中。在您的 View 中构建您的 end-of-urls,然后将它们传递给模板:
def the_view(request):
url_stuff = "custid=%s, sortid, ...." % (name.id, 2 ...)
return render_to_response('template.html',
{'url_stuff':url_stuff,},
context_instance = RequestContext(request))
在 template.html 中:
....
<a href='{{url_stuff}}'>{{name}}</a>
....
如果您需要一大堆对象的 url,请考虑使用 get_absolute_url在模型上。
关于python - Django -- 如何使用带有多个参数的 templatetags 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896166/
我有我正在开发的这个网站的相册,并且正在使用 jquery 按国家/城市进行过滤。如果我将每个国家/地区硬编码到 jquery 中,我会得到我想要的结果。我显然不想这样做。以下是我的意思。
有人知道它是否可能对“templatetags”使用自定义目录eje:“my-project/templatetags” Normal My-Project-Name My-App __i
我想将 comment 文本字段中的每个主题标签转换为 url,以便可以点击。 例如,用户提交, s = "I can't get enough of #SO because #developers
我正在尝试为我的项目创建自定义 Django 模板标签。我按照可用的指南创建了标签。但是标签没有被拾取。它们甚至没有被编译(因为没有生成 .pyc 文件)。 结构是my_dir>app>templat
我有一个简单的模板标签,它返回一个随机事实。当数据库中没有事实时,我得到一个异常值列表索引超出范围。我用 try, except* 包装了查询集,并检查模板中是否有事实。你可以看到下面的代码: 事实.
是否可以创建一个评估为 bool 值的 Django 模板标签? 例如,我可以这样做: {% if my_custom_tag %} .. {% else %} .. {% endif
我最近阅读了一些 django 代码,并且大量使用了 Templatetag 标签: {% templatetag openblock %} block page_title {% templat
我目前正在编写一个快速的 python 脚本,以将我的所有旧模板调整为新的基本模板。为此,我需要将 {% block body %} 内的代码移至其他位置。 我已经得到了这个来匹配我所有的 {% lo
我有以下模板 {% regroup product.hotel.facilities.all by facilitytype as facilities %} {% for facility in f
我有一些值想传递给过滤器并从中获取 URL。 在我的模板中我有: {% if names %} {% for name in names %} {{name}} {%if not
我正在尝试通过创建自定义模板标签的用户来呈现已登录用户名的导航菜单。 PFB代码, @register.inclusion_tag('kpt/navbar.html') def getmenu( pa
我的应用程序的 templatetag 代码因上下文变量中缺少键 (page) 引发 KeyError。在我的模板中,我不使用 context.variableKeyName 引用上下文变量,我仅引用
我有一个模板标记,它返回转换为用户时区的日期时间对象。要格式化它,我更喜欢使用内置过滤器“日期”来格式化它。 是否可以对模板标记的结果使用过滤器? 最佳答案 您可以使用“过滤器”模板标签包装自定义模板
嗯,当我尝试在 Django 中使用“包含”时,我遇到了一些我自己无法解决的困惑问题。 这是我的项目的结构。 MyProject--- App1---
我有一个 OrderedDict,我需要显示它的键、值,但我无法获取它的值,我有这个 dict = ([('sainbath', 'thesailor'), ('HELLO', 'WORLD' )])
我有一些要添加到页面的 html(在本例中是通过 TinyMCE 创建的)。但是,出于安全原因,我不想只打印用户输入的所有内容。 有谁知道只允许呈现 html 的安全子集的模板标签(最好是过滤器)?
我已经为此烦恼了一整天,但无法弄清楚问题所在。它发生在我将我的 Django 项目从一台 PC 复制到另一台 PC 之后。 Watching for file changes with StatRel
我创建了一个模板标签,将 yaml 文档加载到 python 列表中。在我的模板中,我有 {% get_content_set %},这会转储原始列表数据。我想要做的是类似 {% for items
我正在使用 django 编写博客,并且在博客条目的底部我想显示与我使用 django-taggit 附加的标签相关的 5 个最新条目。 所以我想我需要将当前博客条目(我们正在查看的博客条目)传递给模
我有一个国际化的 django (1.4) 应用程序。 在这个应用程序中,我有一个模板标签,它需要知道当前的语言是什么。 我想我可以使用django.utils.translation.get_lan
我是一名优秀的程序员,十分优秀!