假设我有以下模型:
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中删除对象时,我们会收到此错误。
答案 0 :(得分:0)
好像你错了。变化
qs = super(ShipmentAdmin, self).get_queryset(request)
到
qs = super(StudentAdmin, self).get_queryset(request)