django - AttributeError:模块“blog.views”没有属性“post_detail”
问题描述
文件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'),
]
文件视图.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
已包含属性,我仍然收到不包含该属性的错误。有人可以帮忙吗?
编辑:正如人们建议的那样,尝试从 . 导入 urls 行,但仍然出现相同的错误。如果有帮助,还附上我的 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
由于您不使用它,因此不会产生不利影响。
推荐阅读
- php - DOMDocument - 在不添加命名空间的情况下获取节点 XML
- javascript - 在 javascript 文件中使用 maven 原型模板变量
- python - 在 Python 中使用函数的新手
- python-3.x - 玩家和电脑尝试删除1-3,直到数字达到0。如何确保电脑每次都获胜?
- php - Laravel eloquent 从相关表中获取详细信息
- json - 赛普拉斯夹具结构 json 和类型
- php - 在 Laravel 7 中出现“401”未经授权的错误
- javascript - Firebase 云功能对 Xstate 没有任何作用
- python - 如何使用我在类中动态构建的实例的按钮
- python - 如何避免 math.sin(math.pi*2*VERY LARGE NUMBER) 的误差范围比 math.sin(math.pi*2) 大得多?