【问题标题】:DeleteView doesn't delete and just refreshes the delete pageDeleteView 不删除,只是刷新删除页面
【发布时间】:2015-11-25 19:42:22
【问题描述】:

当我点击我的删除项目链接时,它会将我带到我的删除页面,并点击一个按钮来删除项目的模型数据,然后将我带到个人资料页面。但是,当我单击删除按钮时,页面只是刷新并且没有数据被删除?! 我在这里做错了什么?任何帮助将不胜感激:-)

观看次数

class DeleteProject(UpdateView):
    model = UserProject
    template_name = 'howdidu/delete_project.html'

    def get_object(self, queryset=None):
        obj = super(DeleteProject, self).get_object()
        if not obj.user == self.request.user:
            raise Http404
        return obj

    def get_success_url(self):
        project_username = self.request.user.username
        #project_slug = self.object.slug
        return reverse('user_profile', kwargs={'username':project_username})

delete_project.html 模板

{% extends 'howdidu/base.html' %}

{% load staticfiles %}

{% block title %}Delete project{% endblock %}

{% block body_block %}

        <h1>Delete project</h1>

        <form method="post">{% csrf_token %}
        <p>Are you sure you want to delete "{{ userproject.title }}"?</p>
        <input type="submit" value="Confirm" />
        </form>

{% endblock %}

网址

urlpatterns = patterns('',
        url(r'^$', views.index, name='index'),
        url(r'^register_profile/$', views.register_profile, name='register_profile'),
        url(r'^update_profile/$', views.update_profile, name='update_profile'),
        url(r'^create_project/$', login_required(views.CreateProject.as_view()), name='create_project'),
        url(r'^(?P<username>\w+)/(?P<slug>[-\w]+)/update_project/$', login_required(views.UpdateProject.as_view()), name='update_project'),
        url(r'^(?P<username>\w+)/(?P<slug>[-\w]+)/delete_project/$', login_required(views.DeleteProject.as_view()), name='delete_project'),
        url(r'^(?P<username>\w+)/$', views.profile_page, name='user_profile'),
        url(r'^(?P<username>\w+)/(?P<slug>[-\w]+)/$', views.project_page, name='user_project'),

        )

带有删除链接的Project.html模板

{% extends 'howdidu/base.html' %}

{% load staticfiles %}

{% block title %}Project{% endblock %}

{% block body_block %}

        {% if project %}

        <h1>{{ project.title }}</h1>
        <img src="{{ project.project_picture.url }}" width = "300" height = "300"  />
        <h3>{{ project.project_overview }}</h3>
        {% if user.is_authenticated %}
        {% if project_user.username == user.username %}
        <p><a href="{% url 'update_project' project_user.username project.slug %}">Edit project</a></p>
        <p><a href="{% url 'delete_project' project_user.username project.slug %}">Delete project</a></p>
        {% endif %}
        {% endif %}


        {% else %}
            The specified project {{ project.title }} does not exist!
        {% endif %}

{% endblock %}

【问题讨论】:

    标签: python django django-models django-views django-generic-views


    【解决方案1】:

    您必须使用 DeleteView 而不是 UpdateView。 See here.

    【讨论】:

    • 天哪,多么愚蠢的错误,我复制并粘贴以节省开始时的时间并忘记更改它:-S。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2017-05-03
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多