这是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,请原谅我的天真。谢谢
答案 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>