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形式的选择引起的。我认为这是不可定制的。只要您的最终用户没有看到该页面就可以了。你应该优化你自己的视图,这一切都是必要的吗?