2015-01-27 16 views
7

Tôi không thể tìm ra cách để có được Người dùng, từ mô hình django, django.contrib.auth.models.User , bởi id ... tôi muốn xóa một người dùng vì vậy tôi đang cố gắng để tìm thấy nó như thế:Django, cách lấy người dùng theo id, sử dụng django.contrib.auth.models.User

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

Nhưng nó làm việc doesn, và trả

User matching query does not exist. 

id được gửi qua 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; 
    }); 

Tôi gỡ lỗi nó và nó ok, người dùng tồn tại trong DB và id là chính xác

Làm cách nào để làm điều đó? Có phương pháp xóa nào cho phiên bản người dùng django không?

cảm ơn

+0

Làm cách nào để bạn điền từ điển POST? – karthikr

+0

như vậy Delete, dữ liệu-id là đi qua ajax và nó ok, tôi nhận được nó bằng cách in nó và nó là chính xác – tubadc

+0

Có một nhấp chuột đơn giản của liên kết, hoặc nó là một bài AJAX? Ngoài ra, vui lòng chỉnh sửa câu hỏi - nó dễ đọc hơn theo cách đó. – karthikr

Trả lời

10

Đó là cách để làm điều đó, vấn đề ở đây, là người dùng được yêu cầu của bạn không tồn tại. Nếu bạn muốn xử lý trường hợp này, sử dụng này:

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. 

Ngoài ra, bạn cần phải chuyển đổi id của bạn để Int.

+0

đây là bài đăng: , id tồn tại trong DB chưa .... – tubadc

+0

@tubadc bạn cần chuyển id của bạn thành int. Tôi đã cập nhật câu trả lời của mình. – levi

+0

tốt đẹp đó là nó cảm ơn! – tubadc

Các vấn đề liên quan