【发布时间】:2015-09-08 01:52:47
【问题描述】:
首先,我正在尝试建立的这个网站是我的第一个网站,所以请放轻松。谢谢。无论如何,我的主页 home.html 是从 base.html 扩展而来的,而 joke.html 也是从 扩展而来的>base.html。主页工作得很好,但不是笑话页面。以下是我文件的一些部分,让您了解我希望我的系统如何工作:
views.py
def joke_page(request, joke_id):
joke = Joke.objects.get(id=int(joke_id))
return render(request, 'joke.html', {'joke': joke})
urls.py
urlpatterns = [
url(r'^$', views.home_page, name='home_page'),
url(r'^(?P<joke_id>[0-9]+)/$', views.joke_page, name='joke_page'),
]
joke.html
{% extends 'base.html' %}
{% block header_text %}{{ joke.title }}{% endblock %}
{% block text %}{{ joke.text }}{% endblock %}
我想要的是以 jokes/1/ 结尾的 URL 以使用 joke.html 呈现具有正确 html 的页面。相反,它会呈现一个没有 CSS 或有 joke.title 和 joke.text 的页面另外,我注意到 jokes/1/ 没有找到任何东西:
DoesNotExist at /jokes/1/
Joke matching query does not exist..
我在数据库中有 20 个笑话,我可以通过 jokes/21/ 找到笑话/2/,这意味着他们的 id 发生了变化? :P 有 Django 经验的人可以指出我的(许多,毫无疑问)错误吗?谢谢!
编辑:第二个 urls.py
urlpatterns = [
url(r'^$', jokes_views.home_page, name='home'),
url(r'^jokes/', include(jokes_urls)),
url(r'^admin/', include(admin.site.urls)),
]
【问题讨论】:
-
您的 URL 规则均不匹配
/jokes/1,您拥有主页/和任何数字,例如/1/。就是这样。 -
看来问题出在ID上。您可能已经在数据库中删除并重新创建了对象,并且 ID 是自动递增的,这意味着您可能还没有您期望的 ID。使用工具直接访问您的数据库并查看对象的 ID。也作为@KlausD。说,我在您的网址中看到您没有网址
jokes/1/,但您说您可以找到jokes/21/,所以我认为这是问题中的错误。 -
我添加了另一个 urls.py 文件,它可能会清除一些东西......
-
更好的是
^(?P<joke_id>\d+)/$ -
你是这样导入的,
import jokes.urls as jokes_urls,我可以假设吗?
标签: python html css django url