Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django使用html按钮删除对象_Python_Django - Fatal编程技术网

Python django使用html按钮删除对象

Python django使用html按钮删除对象,python,django,Python,Django,我在Django有一个简单的站点项目,手册页有电影列表,第二页有电影详细信息 我想在“电影详细信息”选项卡上添加一个删除按钮,用户可以在其中删除电影对象 视图.py def movies_list(request): return render(request, 'movies.html',{'movies':movies.objects.all()}) def movies_details(request,slug): movies_details=MyModel.obje

我在Django有一个简单的站点项目,手册页有电影列表,第二页有电影详细信息

我想在“电影详细信息”选项卡上添加一个删除按钮,用户可以在其中删除电影对象

视图.py

def movies_list(request):
    return render(request, 'movies.html',{'movies':movies.objects.all()})


def movies_details(request,slug):
    movies_details=MyModel.objects.all()
    det=get_object_or_404(movies_details, slug_name=slug)
    return render(request, 'movies_details.html',{'movies_details':movies_details,'det':det})
url(r'^delete/(?P<id>\d+)/$','project.app.views.delete'),
做这件事最好的方法是什么

使用“新视图”类似于此:

def delete(request, id):
    note = get_object_or_404(Note, pk=id).delete()
    return HttpResponseRedirect(reverse('movies_details.views.movies_details'))
url.py

def movies_list(request):
    return render(request, 'movies.html',{'movies':movies.objects.all()})


def movies_details(request,slug):
    movies_details=MyModel.objects.all()
    det=get_object_or_404(movies_details, slug_name=slug)
    return render(request, 'movies_details.html',{'movies_details':movies_details,'det':det})
url(r'^delete/(?P<id>\d+)/$','project.app.views.delete'),

或者使用一些Django表单?

您可以使用Django的
DeleteView
功能。我想那会更好

from django.views.generic.edit import DeleteView
from django.urls import reverse_lazy

class DeleteTaskView(DeleteView):
     template_name = 'template/delete.html'
     model = Task
     pk_url_kwarg = 'id'

    def get_success_url(self):
        return reverse_lazy('movies_details.views.movies_details')

“什么是最好的”在这个问答网站上是离题的,因为它产生了基于意见的答案和火焰之战。除非你有困难,否则就挑一个你更喜欢的。也就是说,您也可以使用deletehttp方法,而不是GET或POST?在
任务
中,我只能使用我的型号名称?在
模板_name='template/delete.html'
中,我可以使用一些模板,如
'movies\u details.html'
?最后,我需要在我的html模板中写些什么?对不起,我是新来的thanx,你没有使用你的代码,我在这一行出现语法错误
pk\u url\u kwarg='id'
@Mar,很抱歉回复晚了。您可以使用任何名称作为模板,然后在
pk\u url\u kwarg
中而不是
id
使用您传入的任何名称
url
pk\u url\u kwarg
是url?如果我想删除的是图像,如何从服务器中删除,我的意思是从媒体文件夹中完全删除,如何使用您的代码?