AttributeError:模块“ blog.views”没有属性“ post_detail”

时间:2018-07-15 15:05:11

标签: django

文件 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 %}

1 个答案:

答案 0 :(得分:0)

您有一个循环导入。

您的views模块导入您的urls模块,反之亦然。

这意味着两个文件都无法完成导入。

您应该从views.py中删除此行:

from . import urls

由于您不使用它,因此不会产生任何不利影响。