2017-03-21 6 views
0

예외를 발생) (에서만() 메소드를 삭제 호출하면이 전 모델 다음 있다고 가정 해 봅시다 :장고 : 내가 좋아하는 유일한()</strong><strong>에) (삭제 <strong>를 호출 할</strong> 방법을 시도하고 때</p> <pre><code>class Student(models.Model): name = models.CharField(max_length = 100) ... </code></pre> <p>: DoesNotExist

Student.object.filter(pk__in=[1, 5, 6]).only('id', 'name').delete() 

내가받을 다음과 같은 오류 :

DoesNotExist: Student matching query does not exist 
,

내 질문 : only()에서 delete()를 호출 할 수 없습니까?

참고 : 성능 향상을 위해 Django 관리자의 get_queryset() 메소드에서만()을 사용하고 있습니다. 우리가 관리자의 개체, 우리는이 오류가 삭제하려고 할 때

class StudentAdmin(admin.ModelAdmin): 
    def get_queryset(self, request): 
     qs = super(StudentAdmin, self).get_queryset(request) 
     return qs.only('id', 'name', ...) 

: 같은 귀하의 정보에 대한

, 내 관리자가 보인다.

+0

모델의 기본 필드가 무엇인가에

qs = super(ShipmentAdmin, self).get_queryset(request) 

변경? Django는 기본 키를 사용하여 객체와 상호 작용합니다. –

+0

DoesNotExists는'Model.objects.get()'에서만 발생합니다. 따라서 이전 코드와 동일한 코드를 작성한 경우 서버가 다시 시작 되었습니까? 다시 시작한 후 문제가 사라지면 모든 * .pyc 파일을 제거하십시오. 나는 단지 삭제를 시도하고 그것은 나를 위해 잘 일했다. 불행히도 여기 게시 할 수 없습니다. –

+0

@ TulasiRam, 내 생각에, 당신은 그 질문을 오해했습니다. 나는 [only() method] (https://docs.djangoproject.com/en/1.10/ref/models/querysets/#only) –

답변

0

실수로 생각한 것 같습니다.

qs = super(StudentAdmin, self).get_queryset(request) 
+0

실수로 ShipmentAdmin을 작성했습니다. 실제 코드에서는 정확합니다. 질문 편집. –