django - 不允许的方法 (POST):/cbvdelete/5/ 不允许的方法:/cbvdelete/5/
问题描述
我无法运行此代码
viwes.py
from django.shortcuts import render, redirect
from django.urls import reverse_lazy, reverse
from . models import Task
from . forms import Taskform
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import UpdateView,DeleteView
class Tasklistview(ListView):
model = Task
template_name = 'home.html'
context_object_name = 'task'
class Detailview(DetailView):
model=Task
template_name = "details.html"
context_object_name = 'task'
class Updateview(UpdateView):
model = Task
template_name = "update.html"
context_object_name = "task"
fields = ('name', 'priority', 'date')
def get_success_url(self):
return reverse_lazy('todoapp:cbvdetail',kwargs={'pk':self.object.id})
class Deleteview(DetailView):
model = Task
template_name = 'delete.html'
success_url = reverse_lazy('todoapp:home')
网址.py
from django.urls import path
from . import views
app_name='todoapp'
urlpatterns = [
path('',views.home,name='home'),
path('delete/<int:id>/',views.delete,name='delete'),
path('edit/<int:id>/',views.update,name='update'),
path('cbvhome/',views.Tasklistview.as_view(),name='home'),
path('cbvdetail/<int:pk>/',views.Detailview.as_view(),name='cbvdetail'),
path('cbvupdate/<int:pk>/',views.Updateview.as_view(),name='edit'),
]
当我运行此代码时出现错误此页面现在无法运行我无法运行此代码 gngnitgbnugrujvnnvtvnviuvntnvtvitu
解决方案
您是Deleteview
从 a继承的DetailView
,而不是 a DeleteView
,因此出现错误:
from django.views.generic import DeleteView
class Deleteview(DeleteView):
model = Task
template_name = 'delete.html'
success_url = reverse_lazy('todoapp:home')
然而,我强烈建议不要给你的视图命名Deleteview
,因为它很容易与 Django 内置的基于类的视图混淆。通常模型是在名称中指定的,所以TaskDeleteView
不是Deleteview
:
class TaskDeleteView(DeleteView):
model = Task
template_name = 'delete.html'
success_url = reverse_lazy('todoapp:home')
推荐阅读
- android - Android Studio 更新后无法解析符号“NonNull”
- jmeter - 需要使用 JMeter 获取第一次出现的 JSON 响应
- r - strsplit 按点和下划线并将数据粘贴到两列中
- groovy - 如何编写 Groovy 脚本以逐块迭代特定字段的日志文件
- vba - 在 Excel 列中查找所有实例
- java - 在 assertj 中使用ComparatorForType 似乎不适用于作为对象属性的对象属性
- c# - 来自 PLC 的 C# UDP 消息无法在 Unity3D 中接收,但在 Wireshark 中可见
- android - Android:按住/单击按钮时如何更改/删除按钮行程
- jsf - 在primefaces中显示数据表中的数据到inputText
- javascript - JQuery滑块导航点不起作用