2016-12-14 3 views
0

Ich brauche Ihre Hilfe bitte Ich versuche, einen bestimmten Datensatz in meiner Tabelle zu löschen, die ich bereits erstellt habe, habe ich einige Codes versuchen aber nicht in meiner Django-Version 1.10.4, kann mir jemand helfen?Django - Löschen eines bestimmten Datensatzes

Hier ist, was ich habe:

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('/')) 

Vorlage

<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 

Im Grunde habe ich einige Benutzer in meinem Database, wo ich dies durch eine table in meiner Vorlage ich zeigen, ich möchte die erste zum Beispiel löschen, indem Sie in meine Löschoption, wo ist in meiner letzten Zelle meines table

habe ich versucht, diesen Code und ich habe:

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

Wie kann ich das lösen und gut funktionieren lassen? Hilfe bitte ... danke!

+0

Mögliche Duplikat [Was ein NoReverseMatch Fehler ist, und wie kann ich es beheben?] (Http: // stackoverflow.com/questions/38390177/what-is-a-noreversematch-error-and-how-do-fix-it) – e4c5

+0

Ich fange gerade an, ich versuche, jede Zelle meiner Tabelle und ich zu löschen Finde nicht heraus, wie das geht, ich habe einige Codes ausprobiert, die ich gefunden habe, aber nicht für mich funktioniert. Ich bin hier um Hilfe gekommen, also habe ich meinen gesamten Code für die Lösung eingefügt. Es tut mir leid, wenn diese Frage zuvor beantwortet wurde. @ e4c5 – User100696

Antwort

1

Das Problem ist in der Vorlage ändern:

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

An:

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

funktioniert immer noch nicht mit dem gleichen Fehler – User100696

+0

@verocoding ich aktualisierte meine Antwort –

+0

arbeitete! Danke! – User100696

Verwandte Themen