Django预取与_str _()方法相关
我的模型:Django预取与_str _()方法相关,django,database,django-rest-framework,Django,Database,Django Rest Framework,我的模型: class B(models.Model): label = models.CharField() class A(models.Model): b = models.OneToOneField(B, null=True, blank=True, on_delete=models.PROTECT) def __str__(self): return u'[{}] Event:'.format(self.b.label) 现在,通过djan
class B(models.Model):
label = models.CharField()
class A(models.Model):
b = models.OneToOneField(B, null=True, blank=True, on_delete=models.PROTECT)
def __str__(self):
return u'[{}] Event:'.format(self.b.label)
现在,通过django调试工具栏查看请求期间完成的查询,我注意到许多查询执行了200多次。我知道我将使用prefetch_related来解决问题,但是当在str方法中完成查找时,我必须将它放在哪里?您的
GenericView
或ModelViewSet
应该有一个queryset
属性来定义它应该使用的集
您需要在此处添加预回迁相关的
/选择相关的
class UserList(generics.ListCreateAPIView):
queryset = User.objects.all().prefetch_related('groups')
serializer_class = UserSerializer
permission_classes = (IsAdminUser,)
不不要把它放在
\uuuu str\uuuu
中。请发布您的视图代码,这很可能是所有这些查询发生的地方200多次是由可浏览的APIwell形式的选择引起的。我认为这是不可定制的。只要您的最终用户没有看到该页面就可以了。你应该优化你自己的视图,这一切都是必要的吗?