首页 > 代码库 > 'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs

'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs

Django运行时出现‘url‘ requires a non-empty first argument的解决办法:

参考了stackoverflow里面的一个帖子

I started using Django release 1.5 and got a problem with my old code:

<a href="http://www.mamicode.com/{% url auto.views.viewpost post.slug %}"><h3>{{post.title}}</h3></a>
Error: ‘url‘ requires a non-empty first argument. The syntax changed in Django 1.5, see the docs. Docs:

One deprecated feature worth noting is the shift to “new-style” url tag. Prior to Django 1.3, syntax like {% url myview %} was interpreted incorrectly (Django considered "myview" to be a literal name of a view, not a template variable named myview). Django 1.3 and above introduced the {% load url from future %} syntax to bring in the corrected behavior where myview was seen as a variable.

The upshot of this is that if you are not using {% load url from future %} in your templates, you’ll need to change tags like {% url myview %} to {% url "myview" %}. If you were using {% load url from future %} you can simply remove that line under Django 1.5



#该代码片段来自于: http://www.sharejs.com/codes/python/7007

大概意思就是说:原来写成:{%url myview%} 这样的语句在1.5以前的版本是可以通过的,
更换到1.5的版本以后要写成:{%url "myview"%}

经过测试的确如此。

'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs