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

问题描述 投票:1回答:1

文件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 %}
django
1个回答
0
投票

你有一个循环导入。

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

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

你应该从你的views.py中删除这一行:

from . import urls

如果你没有使用它,这将没有任何负面影响。

© www.soinside.com 2019 - 2024. All rights reserved.