python - AttributeError:模块“posts.views”没有属性“编辑”
问题描述
我正在尝试将从我的 views.py 文件创建的视图导入到我的 django 项目的 urls.py 文件中。执行此操作后,终端显示属性错误。我正在关注一个说它有效但我不知道该怎么做的教程
我什么都试过了。我还检查了堆栈溢出消息。没有任何帮助。
帖子/views.py
from django.shortcuts import render, redirect, get_object_or_404
from .forms import PostForm
from .models import Post
from django.views.generic import ListView, DetailView
# Create your views here.
class IndexView(ListView):
template_name = 'posts/index.html'
context_object_name = 'post_list'
def get_queryset(self):
return Post.objects.all()
class PostDetailView(DetailView):
model = Post
template_name = 'posts/post-detail.html'
def postview(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
form.save()
return redirect('index')
form = PostForm()
return render(request, 'posts/post.html', {'form': form})
def edit(request, pk, template_name='posts/edit.html'):
post = get_object_or_404(Post, pk=pk)
form = PostForm(request.POST or None, instance=post)
if form.is_valid():
form.save()
return redirect('index')
return render(request, template_name, {'form': form})
def delete(request, pk, template_name='posts/confirm_delete,html'):
post = get_object_or_404(Post, pk=pk)
if request.method == 'POST':
post.delete()
return redirect('index')
return render(request, template_name, {'object': post})
帖子/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.PostDetailView.as_view(), name='detail'),
path('edit/<int:pk>/', views.edit, name='edit'),
path('post/', views.postview, name='post'),
path('delete/<int:pk>/', views.delete, name='delete'),
]
该网站旨在启动并运行并显示预加载的帖子。相反,我看到了这个错误消息
文件“C:\Users****\PycharmProjects\CRUD\CRUD\posts\urls.py”,第 6 行,在路径中('edit//',views.edit,name='edit'),AttributeError:模块“posts.views”没有属性“编辑”
解决方案
你的缩进是错误的:
class PostDetailView(DetailView):
model = Post
template_name = 'posts/post-detail.html'
def postview(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
form.save()
return redirect('index')
form = PostForm()
return render(request, 'posts/post.html', {'form': form})
def edit(request, pk, template_name='posts/edit.html'):
post = get_object_or_404(Post, pk=pk)
form = PostForm(request.POST or None, instance=post)
if form.is_valid():
form.save()
return redirect('index')
return render(request, template_name, {'form': form})
def delete(request, pk, template_name='posts/confirm_delete,html'):
post = get_object_or_404(Post, pk=pk)
if request.method == 'POST':
post.delete()
return redirect('index')
return render(request, template_name, {'object': post})
推荐阅读
- mysql - 如何执行一个非常庞大的 MySQL 查询?(花了几天然后没有成功就停止了)
- c++ - 是否有任何内置函数可以告诉编译器分支是否可预测?
- vb.net - 指定的打印机无效(有时可以工作,有时不能)
- sql-server - 用于从所述表的关系属性更新表属性的 SQL 查询
- javascript - 使用 JQuery 在表中显示 JSON
- node.js - 我如何在 Angular 中写博客组件?
- c++ - 为什么不是条件 *First1 == * First2 ?? (C++ STL 包含函数实现)
- javascript - Laravel-echo-server 无法使用 https 协议启动生产
- ios - Google 登录 - 已连接的用户
- r - 从 data.frames 列表中拆分 data.frame、排序和子集