Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “Django”;删除模板中的硬编码URL“;不起作用_Python_Django_Django Templates_Django Urls - Fatal编程技术网

Python “Django”;删除模板中的硬编码URL“;不起作用

Python “Django”;删除模板中的硬编码URL“;不起作用,python,django,django-templates,django-urls,Python,Django,Django Templates,Django Urls,在教程之后,我将第一次查看django 到目前为止,一切都很顺利。我在删除硬编码URL部分遇到了一个障碍。我正在使用Django 1.6.6 当我从以下位置更改硬编码url时: <li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li> 我已经尝试过删除“细节”中的引用,但鉴于我使用的是django 1.6.6,我不需要这样做。它也不起作用。我也尝试过跳过一点,在url.py中

在教程之后,我将第一次查看django

到目前为止,一切都很顺利。我在删除硬编码URL部分遇到了一个障碍。我正在使用Django 1.6.6

当我从以下位置更改硬编码url时:

<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
我已经尝试过删除“细节”中的引用,但鉴于我使用的是django 1.6.6,我不需要这样做。它也不起作用。我也尝试过跳过一点,在url.py中包含/polls/namespace,但同样没有乐趣

我的URL.py文件如下所示:

from django.conf.urls import patterns, url

from polls import views

urlpatterns = patterns('',
    # ex: /polls/
    url(r'^$', views.index, name='index'),
    # ex: /polls/5/
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
    # ex: /polls/5/results/
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
    # ex: /polls/5/vote/
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'), 

)
来自django.conf.url导入模式,url
从轮询导入视图
urlpatterns=模式(“”,
#例如:投票/
url(r'^$',views.index,name='index'),
#ex:/polls/5/
url(r'^(?P\d+/$),views.detail,name='detail'),
#ex:/polls/5/结果/
url(r'^(?P\d+)/results/$',views.results,name='results'),
#ex:/polls/5/投票/
url(r'^(?P\d+)/vote/$',views.vote,name='vote'),
)
my index.html模板中的确切代码为:

{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
{%if-latest\u poll\u list%}
    {最新轮询列表%中的轮询百分比}
  • {%endfor%}
{%else%} 没有投票

{%endif%}
明白了

但令人沮丧的是,我不知道为什么。出于绝望,在我的index.html中,我开始在以下行中使用index.html文件:

<li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>

  • 没有任何逻辑上的原因,我将poll.id改为poll_id。正如我预期的那样,重新加载break index.html。当我把它改回poll.id时,一切正常。这毫无意义。我甚至按ctrl^z键返回到index.html,该文件以前不起作用,现在也起作用了。每次检查之前,我都会重新启动服务器。我很生气。但至少它起作用了。

    回溯中的这一行表明您错过了关闭大括号之前的
    %

    The current URL, polls/{% url 'detail' poll.id }, didn't match any of these.
    

    甚至,我也面临着这个问题,对我来说,原因是我在
    {%
    %}
    之间留出了空间,其中正确的语法是
    {%
    %}
    。为了完整起见,我在下面给出了正确和不正确的语法-

    语法正确-

  • 语法不正确-
  • 看起来这不是模板中的确切代码。你能复制粘贴准确的代码吗?你的模板的其他部分真的能工作吗?看起来它实际上没有被解析,所以你在你的链接中得到了原始模板标记。是的,我也是这么想的,但是在我将链接切换到{%url%}标记之前,它工作得很好。我是否遗漏了一个导入或其他内容?我刚刚遇到了一个类似的问题,但在本教程的稍后部分。索引页面突然停止了工作,正如您描述的,它在哪里以前是好的,我没有碰过它。重新启动服务器修复了它。一定是服务器出现了故障。是的,这是建议。问题是,我没有我也尝试过删除文件并重新制作,只是为了看看是否有什么奇怪的事情发生。将其重命名并将my polls.url从index更改为index1。仍然得到相同的错误和缺少的%I认为poll.id更有可能被设置为
    “{%url'detail'poll.id}”
    ,因为它识别url模板标记是有效的。因为这是一个字符串,并且poll_id必须是一个数字,所以它失败了。如果是因为在右大括号之前缺少%的话,那么它会在模板中引发语法错误。@schillingt如果
    poll.id
    不是一个数字,那么我想你会得到
    NoReverseMatch
    。无论如何,这并不重要,这个问题已经有一年了,所以OP希望已经解决了他们的问题。
    {% if latest_poll_list %}
        <ul>
        {% for poll in latest_poll_list %}
            <li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>
        {% endfor %}
        </ul>
    {% else %}
        <p>No polls are available.</p>
    {% endif %}
    
    <li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>
    
    The current URL, polls/{% url 'detail' poll.id }, didn't match any of these.