当前位置: 首页 > 面试题库 >

Django 1.5版:“ url”需要一个非空的第一个参数。语法在Django 1.5中已更改

谭富
2023-03-14
问题内容

我开始使用Django 1.5版,而我的旧代码出现了问题:

<a href="{% url auto.views.viewpost post.slug %}"><h3>{{post.title}}</h3></a>

错误:“ url”需要一个非空的第一个参数。语法在Django 1.5中已更改,请参阅文档。文件:

值得注意的一项不推荐使用的功能是转向“新型” URL标签。在Django 1.3之前,诸如{%url myview%}之类的语法被错误解释(Django认为“ myview”是视图的文字名称,而不是名为myview的模板变量)。Django 1.3及更高版本引入了{未来的%加载网址}语法,以引入更正的行为,其中myview被视为变量。

这样的结果是,如果你在模板中未使用{%将来的%}加载URL,则需要将{%url myview%}之类的标签更改为{%url“ myview”%}。如果你使用的是{未来的%加载网址},则可以在Django 1.5下简单地删除该行

然后,我尝试了: <a href=“{% url ‘auto.views.view_post’ post.slug %}”><h3>{{post.title}}</h3></a> 但是对于’auto.views.view_post’却出现了错误反向,其中未找到参数’(’,)’和关键字参数’{}’。:(我做错了什么?


问题答案:

我真的很讨厌用手做所有这些垃圾,所以我写了一个sed脚本来替我做。确保先备份,然后在模板目录中运行此备份:

find . -type f -print0 | xargs -0 sed -i 's/{% url \([^" >][^ >]*\)/{% url "\1"/g'

它会遍历所有模板文件并替换为:

{% url something.else foo bar %}

有了这个

{% url "something.else" foo bar %}

请注意,我对此有点懒,它可能会在某些结构上中断。不过,在差异中查找错误仍然比手工操作要容易得多。



 类似资料:
  • 返回第一个 non-null/undefined 的参数。 使用 Array.find() 返回第一个非 null / undefined 的参数。 const coalesce = (...args) => args.find(_ => ![undefined, null].includes(_)); coalesce(null, undefined, '', NaN, 'Waldo'); /

  • 请帮助我理解以下问题: 从 https://alligator.io/vuejs/common-gotchas/ “您不能直接向根数据对象添加新属性,但可以使用”: Vue.set(this.data, “道具名称”, 值) Vue.set(this.$data,'lastAddedName','John Elway'); 但是 Vue.set() 上面的方法中的第一个参数:“this.data”

  • 问题内容: 我试图获取许多列中的第一个非空值。我知道我可以使用每列的子查询来完成此操作。以性能的名义(在这种情况下确实很重要),我想一次完成。 以以下示例数据为例: 我的梦想查询将在每个数据列中找到第一个非null值,并按排序。 例如,选择第一三列的神奇骨料时,排序由所述下降。 或升序排序时: 有人知道解决方案吗? 问题答案: 可以与一起使用。是必需的,因为SQL Server首先对null进行排

  • 我有一个非常奇怪的问题,很简单,但我不明白问题是什么。 我有一个类,ClassA调用ClassB中的函数,比如- 类A是在我的applicationContext中定义的bean。类xml ClassB中的函数定义看起来像 IntelliJ没有指出任何语法问题,一切看起来都很正常。。。然而,当我试图编译时,Maven出现了一个异常 B类与a类位于不同的模块中,因此B类位于a类的pom中。作为依赖项

  • 问题内容: 我有一个示例数据框显示如下。对于每一行,我想先检查c1,如果它不为null,则检查c2。通过这种方式,找到第一个非空列并将该值存储到列结果中。 我现在正在使用这种方式。但是我想知道是否有更好的方法。(列名没有任何模式,这只是示例) 当有很多列时,此方法看起来不好。 问题答案: 首先使用回填s,然后通过以下方式选择第一列: 要么: 性能 :

  • 当我运行方法时,结果1和2是相同的,我需要结果是不同的数据集,因为我通过不同的数据集。 这是我目前所掌握的。 而主要的方法代码是: 结果在两个相同的数据集[100.0,200.0,300.0]时打印stat1和stat。 我需要stat 1为10.0、20.0、30.0和stat 2为100.0、200.0、300.0 我试图改变…的命令 至 但这给了我同样的结果。我如何解决这个问题?