【发布时间】:2018-03-13 18:31:28
【问题描述】:
我已经建立了一个网站,其中包含一个带有帖子的表格和一个删除按钮。 当您单击删除按钮时,它会显示一个弹出窗口,当您单击“确认”时,它应该删除该项目。
我不知道如何将确认按钮连接到删除我的项目的 urls.py。
- 我应该在 PostDelete 类中添加什么?
- 我应该在 HTML 中添加一些内容吗?表单正在使用 POST...
正如你所看到的,我在评论中有一些我尝试过的东西,比如 post.delete() 但它们都没有奏效......
请帮帮我,我很困惑,没有找到任何使用 django 确认淡入淡出选项的指南:(
谢谢!
index.html-
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#MyModal" href="{% url 'delete_post' server.id %}">Delete <span class="glyphicon glyphicon-trash" </span></button>
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#MyModal">Edit <span class="glyphicon glyphicon-pencil" </span></button>
<div id ="MyModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<form action="" method="post">{% csrf_token %}
<h4>Are you sure you want to delete?</h4>
<input type="submit" class="btn btn-danger btn-md" value="Confirm delete"/>
<button type="submit" class="btn btn-default" data-dismiss="modal">Cancel</button>
</form>
</div>
</div>
views.py -
from django.shortcuts import render_to_response
from django.shortcuts import render, redirect
from django.template import RequestContext
from django.views.generic import TemplateView, UpdateView, DeleteView, CreateView
from DevOpsWeb.forms import HomeForm
from DevOpsWeb.models import serverlist
from django.core.urlresolvers import reverse_lazy
class HomeView(TemplateView):
template_name = 'serverlist.html'
# def home(self, request):
# entries = serverlist.objects.all()
# return render_to_response('serverlist.html', {'Post' : entries })
def get(self, request):
form = HomeForm()
posts = serverlist.objects.all()
args = {'form' : form, 'posts' : posts}
return render(request, self.template_name, args)
def post(self,request):
form = HomeForm(request.POST)
posts = serverlist.objects.all()
if form.is_valid(): # Checks if validation passed
post = form.save(commit=False)
post.save()
text = form.cleaned_data['ServerName']
form = HomeForm()
return redirect('serverlist')
args = {'form': form, 'text': text}
return render(request, self.template_name,args)
class PostDelete(DeleteView):
model = serverlist
success_url = reverse_lazy('serverlist') # This is where this view will
# def delete(self,request,id=None):
# post = get_object_or_404(serverlist,id=id)
# post.delete()
# return redirect('serverlist')
urls.py -
from django.conf.urls import url, include
from DevOpsWeb.views import HomeView
from DevOpsWeb.views import PostDelete
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
# Examples:
url(r'^$', HomeView.as_view(), name='serverlist'),
# Uncomment the admin/doc line below to enable admin documentation:
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^delete/(?P<pk>\d+)/$', PostDelete.as_view(), name="delete_post"),
url(r'^django_popup_view_field/', include('django_popup_view_field.urls', namespace="django_popup_view_field")),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
]
【问题讨论】:
标签: javascript python html mysql django