尽管更改了,DjangoURL仍然不显示页面

时间:2018-06-22 06:58:16

标签: python django django-models django-templates django-views

这是index.html

{% extends 'base.html' %}
{% block content %}
<h1>list of  {{title}}</h1>
{% if questions %}
    <ul>
        {% for question in questions %}
        <li>
           <a href="/polls/{{question.id}}/details/"> {{question.title}}</a>

        </li>
        {% endfor %}
    </ul>
        {% else %}
        <p>there is a no question available</p>
        {% endif %}


{% endblock %}

details.html

{% extends 'base.html' %}
{% block content %}
<H2>Details Page</H2>
<h3>{{question.title}}</h3>
{% for choice in question.choices %}
<p>{{choice.text}}({{choice.votes}})</p>
{% empty %}
<p>There is no choice available for this Question</p>
{% endfor %}


<p>Poll is created by {{question.created_by.first_name}}</p>

{% endblock %}

这是base.html

{%load static%}
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>WebPage</title>
    <link rel="stylesheet" href="(%static 'css/custom.css'%)">
</head>
<body>
<h1>Welcome to My Page</h1>
{%  block content %}
{% endblock %}
</body>
</html>

还有poll.urls

from django.conf.urls import url
from poll.views import *
urlpatterns = [
    url('', index, name='polls_list'),
    url('<int:id>/details/', details, name='polls_details')
]

这就是发生的情况,我在index.html上显示了3个问题,单击它们中的任何一个都会更改为正确的url,但不会打开请求的页面。我该如何解决。请记住,我两天前才刚开始django,请原谅我的天真。谢谢

2 个答案:

答案 0 :(得分:1)

在urls.py中,您使用的是url()函数,但是语法为path。将其更改为路径:

path('', index, name='polls_list'),
path('<int:id>/details/', details, name='polls_details')

编辑:如果您使用的是2.0之前的版本,则不支持路径语法,因此您需要使用正则表达式:

url('^$', index, name='polls_list'),
url('^(?P<id>\d+)/details/$', details, name='polls_details')

答案 1 :(得分:-1)

请按照以下代码编辑您的网址。 Django可以处理网址的创建。

<a href="{% url 'polls_details' question.id %}"> {{question.title}}</a>