2016-12-14 98 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