Django:仅在()上调用delete()方法引发异常DoesNotExist

时间:2017-03-21 05:04:19

标签: django django-admin django-orm

假设我有以下模型:

class Student(models.Model):
   name = models.CharField(max_length = 100)
   ...

当我尝试在仅限()上调用 delete()方法时:

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

我收到以下错误:

DoesNotExist: Student matching query does not exist

我的问题是:我们不能只在()上调用delete()吗?

注意:我们在Django admin的get_queryset()方法上使用only()以获得更好的性能。

对于您的信息,我的管理员看起来像:

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

当我们尝试从Admin中删除对象时,我们会收到此错误。

1 个答案:

答案 0 :(得分:0)

好像你错了。变化

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

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