2015-01-27 10 views
7

Nie mogę tego dowiedzieć się, jak zdobyć użytkownika, z modelu django, django.contrib.auth.models.User przez id ... Chcę usunąć użytkownika więc staram się znaleźć to tak:Django, jak zdobyć użytkownika za pomocą id, używając django.contrib.auth.models.User

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

Ale nie robi pracę i zwraca

User matching query does not exist. 

identyfikator jest wysyłany przez AJAX :

$("#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; 
    }); 

I debugowania i jest OK, użytkownik istnieje w DB i identyfikator jest poprawny

Jak to zrobić? Czy istnieje jakaś metoda usuwania instancji użytkownika Django?

dzięki

+0

W jaki sposób wypełniasz słownik POST? – karthikr

+0

podobnie jak Delete, id danych przechodzi przez ajax i jest ok, dostaję go przez wydrukowanie go i jest poprawne – tubadc

+0

Czy jest to zwykłe kliknięcie linku, czy jest to post AJAX? Ponadto edytuj pytanie - jest bardziej czytelne w ten sposób. – karthikr

Odpowiedz

10

że jest sposób, aby to zrobić, tutaj problemem jest to, że żądanie użytkownika nie istnieje. Jeśli chcesz obsługiwać tę sprawę, użyj tego:

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. 

Ponadto, należy przekształcić swój identyfikator do Int.

+0

tutaj jest post: , id istnieje w DB jeszcze .... – tubadc

+0

@tubadc potrzebujesz przekonwertować swój identyfikator do int. Zaktualizowałem swoją odpowiedź. – levi

+0

fajne, to dzięki! – tubadc

Powiązane problemy