泛型类:UpdateView和DeleteView未将数据保存回模型



UpdateView和DeleteView未将数据保存回模型

views.py

class ProjectList(ListView):
model = Project
template_name = 'mainapp/browse_app.html'
context_object_name = 'projs'
class ProjectUpdate(UpdateView):
model = Project
fields = ['pname','desc','emailID']
template_name = 'mainapp/project_form_edit.html'
class ProjectDelete(DeleteView):
model = Project
fields = ['id','pname','desc','emailID','updated_on']
template_name = 'mainapp/index.html'
success_url = reverse_lazy('mainapp/projs')
def form_display(request):
data = Project.objects.all()
return render(request,'mainapp/browse_page.html',{'data':data})
...

browse_page.html:有一个编辑链接和一个删除按钮,它显示点击的项目的详细信息

{% for i in data %}
<center>
<a href="#costumModal13{{ forloop.counter }}" role="button" class="btn btn-default" data-toggle="modal">{{ i }}</a>
</center>
<!-- Modal -->
<div id="costumModal13{{ forloop.counter }}" class="modal" data-easein="bounceLeftIn"  tabindex="-1" role="dialog" aria-labelledby="costumModalLabel" aria-hidden="true">
<a class="btn btn-info btn-lg fa fa-pencil-square-o" href="{% url 'project_edit' pk=i.id %}" aria-hidden="true">Edit</a>
<form method="POST" action="{% url 'project_del' pk=i.id %}">
{% csrf_token %}<input type="submit" value="Delete">
</form>
{{ i.pname }}
{{ i.id }}
{{ i.updated_on }}
</div>
{% endfor %}

urls.py

from django.contrib import admin
from django.urls import path, include, re_path
from mainapp import views
from mainapp.views import ProjectUpdate, ProjectDelete
app_name = 'mainapp'
urlpatterns = [
path('browse/',views.form_display,name="browse_page"),
re_path(r'^browse/(?P<pk>d+)/$', ProjectUpdate.as_view(), name='project_edit'),
re_path(r'^browse/delete/(?P<pk>d+)/$', ProjectDelete.as_view(), name='project_del'),
]

提交编辑后的表格时:点击删除按钮:

你能帮我解决这两个错误吗?

第一个图像问题:

url的末尾附加了index.html。您的url被定义为/browse/7/

第二个图像问题:

命名空间delimeter是:而不是/

class ProjectDelete(DeleteView):
...
success_url = reverse_lazy('mainapp:projs')

最新更新