簡體   English   中英

模板渲染期間出錯?

[英]Error during template rendering?

我有一個博客應用程序,這是views.py的相關部分,當然屬於該博客應用程序。

from django.conf import settings
from django.shortcuts import render
from .models import Blog

# Create your views here.
def view_homepage(request):
    return render(request, 'index.html', {})

def view_aboutpage(request):
    return render(request, 'about.html', {})

def view_blogpost(request, blog_id):
    article = Blog.objects.get(pk=blog_id)
    return render(request, 'damn.html', {'article':article})

這是博客應用程序中的urls.py

from django.conf.urls import url, include, patterns
from blog import views

urlpatterns = [
  url(r'^$', views.view_homepage, name=''),
  url(r'about/$', views.view_aboutpage, name='about'),
  url(r'blog/(?P<blog_id>\d+)/$', views.view_blogpost, name='post'),
]

這是項目中的常規urls.py。

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('blog.urls')),
]

這是我的錯誤。

NoReverseMatch at /
Reverse for 'post' with arguments '()' and keyword arguments '{}' not found.              1 pattern(s) tried: ['blog/(?P<blog_id>\\d+)/$']
Request Method: GET
Request URL:    http://localhost:8000/
Django Version: 1.9
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'post' with arguments '()' and keyword arguments '{}' not found.     1 pattern(s) tried: ['blog/(?P<blog_id>\\d+)/$']
Exception Location: C:\Users\filip\Python\ENV\lib\site-    packages\django\core\urlresolvers.py in _reverse_with_prefix, line 508
Python Executable:  C:\Users\filip\Python\ENV\Scripts\python.exe
Python Version: 3.5.1

這是html:

<li>
    <a href="{% url "" %}">Home</a>
</li>
<li>
    <a href="{% url "about" %}">About</a>
</li>
<li>
    <a href="{% url "post" article.id %}">Sample Post</a>
</li>

找不到帶有參數'()'和關鍵字參數'{}'的'post'。 嘗試了1個模式:['博客/(?P \\ d +)/ $']

就像錯誤所說的那樣,您沒有一個不帶任何參數的URL,稱為“ post”。 您確實調用過的URL,該URL需要一個blog_id參數。 因此,您應該在標簽中傳遞它。 由於您有一個名為article的上下文變量,因此它將是:

<a href="{% url "post" article.id %}">Sample Post</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM