通用类:UpdateView和DeleteView不将数据保存回模型

时间:2020-02-19 20:49:18

标签: django django-generic-views

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'),
]

On submitting the edited form: On clicking on delete button:

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

1 个答案:

答案 0 :(得分:0)

第一个图像问题:

URL的末尾附加了index.html。您的网址定义为/browse/7/

第二个图像问题:

名称空间的分隔符是:而不是/

class ProjectDelete(DeleteView):
    ...
    success_url = reverse_lazy('mainapp:projs')
相关问题