所以我一直在建立在Django網站與服務器的表(IP,用戶等)刪除使用Django的項目按鈕僅刪除第一個項目
我用mysql。
對於每個項目,我添加了一個刪除和編輯按鈕。 但是,刪除按鈕刪除服務器旁邊的按鈕總是而不是的第一項!
有行 -
我試圖把server.id,{{server.id}} ..沒有奏效。 有沒有人有任何想法?
PS 當我在確認詢問是否要刪除server.ServerName ..它僅要求第一臺服務器,即使它是在循環的名字..
index.html-
{% for server in posts %}
<tr>
<div class ="server">
<td>{{ server.ServerName }}</td>
<td>{{ server.Owner }}</td>
<td>{{ server.Project }}</td>
<td>{{ server.Description }}</td>
<td>{{ server.IP }}</td>
<td>{{ server.ILO }}</td>
<td>{{ server.Rack }}</td>
<td>{{ server.Status }}</td>
<td>
</div>
<button type="button" class="btn btn-primary" data-toggle="modal" href="#delete-server-{{server.id}}" data-target="#DeleteItem">Delete <span class="glyphicon glyphicon-trash" </span></button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#DeleteItem">Edit <span class="glyphicon glyphicon-pencil" </span></button>
<div id ="DeleteItem" class="modal fade" role="document">
<div class="modal-dialog" id="delete-server-{{server.id}}">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Delete Confirmation</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form action="{% url 'delete_post' server.id %}" method="post">{% csrf_token %}
<h6>Are you sure you want to delete {{ server.ServerName }}?</h6>
<input type="submit" class="btn btn-danger btn-md" value="Confirm delete"/>
<button type="submit" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
</form>
</div>
</div>
</div>
</td>
</div>
</tr>
{% endfor %}
</tbody>
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 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')
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)),
]
顯示您刪除視圖代碼,請 –
添加網址和瀏覽文件 –
這工作? ''{%url'delete_post'pk = server.id%}'' – Ivan