文件urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),
]
文件views.py
from django.utils import timezone
from django.shortcuts import render, get_object_or_404
from .models import Post
from . import urls
def post_list(request):
posts = Post.objects.filter(
published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
尽管包含了post_detail
属性,但我仍然得到它未包含的错误。有人可以帮忙吗?
编辑:正如人们建议的那样,尝试删除。导入网址行但仍然得到相同的错误。如果有帮助,还附上我的html文件:
{% extends 'blog/base.html' %}
{% block content %}
{% for post in posts %}
<div class="post">
<div class="date">
<p>published: {{ post.published_date }}</p>
</div>
<h1><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
<p>{{ post.text|linebreaksbr }}</p>
</div>
{% endfor %}
{% endblock %}
你有一个循环导入。
你的views
模块导入你的urls
模块,反之亦然。
这意味着两个文件都无法完成导入。
你应该从你的views.py
中删除这一行:
from . import urls
如果你没有使用它,这将没有任何负面影响。