2015-01-27 3 views
7

Ich kann es nicht aus dem django-Modell, django.contrib.auth.models.User, herausfinden, wie man einen Benutzer bekommt ich versuche es so zu finden, die von id ... ich möchte einen Benutzer löschen, so:Django, wie man einen Benutzer per ID bekommt, mit dem django.contrib.auth.models.User

User.objects.get(id=request.POST['id']) 

Aber es doesn Arbeit und gibt

User matching query does not exist. 

die ID von ajax gesendet wird :

$("#dynamic-table").on('click','.member_delete_btn', function() { 
     if (confirm("Are you sure? the member will be deleted...") == true) { 
      $.ajax({ 
       type: "POST", 
       url: "/panel/member/delete/", 
       data: { id: $(this).attr('data-id'), 'csrfmiddlewaretoken': '{{ csrf_token }}' }, 
       success: function (data) { 
        if(data.success) { 
         $('#result').html('<div class="alert alert-success"> <strong>Well done!</strong> Member deleted.</div>'); 
         list_members(); 
        }else{ 
         $('#result').html('<div class="alert alert-warning"> <strong>Warning!</strong> Member not deleted.</div>'); 
        } 
       }, 
       error: function (data) { 
        alert("failure:" + data.error); 
       } 
      }); 
     } 
     else { 
      return false; 
     } 
     return false; 
    }); 

Ich debugge es und es ist in Ordnung, der Benutzer existiert in der Datenbank und die ID ist korrekt

Wie mache ich das? Gibt es eine Löschmethode für Django-Benutzerinstanzen?

dank

+0

Wie bevölkern Sie das POST-Wörterbuch? – karthikr

+0

wie das Delete, die Daten-ID wird von Ajax übergeben und es ist in Ordnung, ich bekomme es durch Drucken und es ist korrekt – tubadc

+0

Ist es ein einfacher Klick auf den Link, oder ist es ein AJAX-Post? Bearbeiten Sie auch die Frage - sie ist auf diese Weise besser lesbar. – karthikr

Antwort

10

, dass die Art und Weise, es zu tun ist, ist das Problem hier, dass Ihr Wunsch-Benutzer existiert nicht. Wenn Sie diesen Fall behandeln möchten, verwenden Sie diese:

try: 
    user_id = int(request.POST['id']) 
    user = User.objects.get(id=user_id) 
except User.DoesNotExist: 
    //handle the case when the user does not exist. 

Außerdem müssen Sie Ihre ID Int verwandeln.

+0

Hier ist der Beitrag: , die ID existiert noch in der DB .... – tubadc

+0

@tubadc du musst deine id in int umwandeln. Ich habe meine Antwort aktualisiert. – levi

+0

schön das ist es danke! – tubadc

Verwandte Themen