2016-12-14 97 views
0

我需要你的幫助,我正在嘗試刪除表中已經創建的特定記錄,我嘗試了一些代碼,但沒有在我的django版本中工作1.10.4,有人可以幫我嗎?Django - 刪除特定記錄

這是我有:

Views.py

from django.shortcuts import render 
from django.conf import settings 
from .forms import regForm 
from .models import registro 
from registro.forms import regForm 
from django.shortcuts import get_object_or_404 
from django.core.urlresolvers import reverse 



def test_reg(request): 
    form = regForm(request.POST or None) 
    queryset = registro.objects.all() 
    # query_delete = queryset.delete() 
    context = { 
    "form": form, 
    "queryset": queryset, 
    } 
    if form.is_valid(): 
     instance = form.save() 
    return render(request, "registro.html", context) 

def delete(request, id): 
    note = get_object_or_404(registro, pk=id).delete() 
    return HttpResponseRedirect(reverse('/')) 

模板

<form method="POST" action="">{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Registrame" /> 
</form> 

<style> 
table, th, td { 
    border: 1px solid black; 
} 
</style> 
<table> 
    <tr> 
     <th>Name</th> 
     ... 
     <th>Age</th> 
     ... 
     <th>Delete</th> 
    </tr> 
    {% for item in queryset %} 
    <tr> 
     ... 
     <td>{{ item.name }}</td> 
     ... 
     <td>{{ item.age }}</td> 
     ... 
     <td> <a href="{% url 'delete' pk=registro.id %}">Delete</a> </td> 
    </tr> 
    {% endfor %} 
</table> 

urls.py

from django.conf.urls import include, url 
from django.contrib import admin 
from myselect import views 
from registro import views 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^select/', include('myselect.urls')), 
    url(r'^delete/(?P<id>\d+)/$',views.delete, name='delete'), 
    url(r'^$', views.test_reg, name='test_reg') 
] 

Model.py

from __future__ import unicode_literals 

from django.db import models 

# Create your models here. 
from django import forms 

# Create your models here. 

class registro(models.Model): 
    name = models.CharField(max_length=100) 
    age = models.CharField(max_length=100) 

    def __unicode__(self): 
     return self.name 

    def __str__(self): 
     return self.name 

基本上我有我的Database一些用戶在那裏我展示這個通過我的模板table,我想刪除通過單擊第一個例如我刪除選項這裏是我的我的table

最後一個單元格我嘗試此代碼,我得到:

Reverse for 'delete' with arguments '()' and keyword arguments '{u'pk': ''}' not found. 1 pattern(s) tried: ['delete/(?P<id>\\d+)/$'] 

我該如何解決這個問題並使其工作良好? 請幫忙...謝謝!

+0

的可能的複製[什麼是NoReverseMatch錯誤,以及如何解決呢?(HTTP:// stackoverflow.com/questions/38390177/what-is-a-noreversematch-error-and-how-do-i-fix-it) – e4c5

+0

我剛剛開始,我試圖刪除我的表和我的任何單元格不知道如何做到這一點,我嘗試了一些我發現但不適合我的代碼。我來這裏尋求幫助,所以我粘貼我的整個代碼解決方案。如果以前回答過這個問題,我很抱歉。 @ e4c5 – User100696

回答

1

的問題是在你的模板變化:

<a href="{% url 'delete' pk=registro.id %}">Delete</a> 

要:

<a href="{% url 'delete' item.id %}">Delete</a> 
+0

仍然不能使用相同的錯誤 – User100696

+0

@verocoding我更新了我的答案 –

+0

工作!謝謝! – User100696