【问题标题】:Join Django/Python list by commas then slugify each element用逗号加入 Django/Python 列表,然后对每个元素进行 slugify
【发布时间】:2018-03-29 14:51:52
【问题描述】:

来自 Python 列表:

categories = ["category 1", "category 2", "category 3"]

我想生成一个这样的类别 slug 的 javascript 数组:

var categories = ["category-1", "category-2", "category-3"];

这两种方法我都试过了,但结果非常不准确:

var categories = ["{{ categories|join:'", "'|slugify }}"];
var categories = ["{{ categories|slugify|join:'", "' }}"];

所以我想我的问题不仅仅是这些过滤器的顺序,似乎我需要做其他事情,但我不知道我在寻找什么。

注意:我知道如何循环执行,但我希望有一个单行。

【问题讨论】:

  • 这似乎不是您应该在模板中执行的操作 - 您应该在视图中执行此操作并传递 slugified 列表。
  • 我在模板中的其他 2 次使用常规列表,所以我想使用相同的变量
  • 那你应该都通过了。
  • 好吧,如果在模板中绝对没有办法即时执行此操作,我会勉强这样做,呵呵

标签: django


【解决方案1】:
from django.utils.text import slugify

categories = [slugify(cat) for cat in categories]

然后:

var categories = {{ categories|safe }}

【讨论】:

  • 由于这是传递给 JS 脚本,最好将列表转储为 JSON。
  • 然而,这是要放入视图的代码,对吧?不是模板?所以我必须对变量进行 slugified 副本,因为我还在模板中使用常规列表来处理其他内容?
  • 是的,你应该把它放在视图中。如果您还需要常规列表,只需将新列表分配给另一个变量。
  • 谢谢朋友,我会采纳你的明智建议;)
猜你喜欢
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-20
  • 2018-12-08
相关资源
最近更新 更多