在Django表单中使用ModelChoiceField或ModelMultipleChoiceField时,有没有办法传入一组缓存的选项?目前,如果我通过queryset参数指定选项,则会导致数据库命中.
我想使用memcached缓存这些选项,并在显示具有此类字段的表单时防止对数据库的不必要的命中.
django django-forms django-admin django-cache django-queryset
我正在使用django-parler(django-hvad的衍生物)进行翻译.在管理员显示具有多种关系的Foreignkey字段时,django为每个字段运行一个查询:


因此,当有300个服务时,会有尽可能多的查询.
我认为get_queryset上的prefetch_related不适用于mantomany过滤器/列表,如果我错了,请纠正我:
def get_queryset(self, request):
return super(DoctorAdmin, self).get_queryset(request).prefetch_related('translations', 'services__translations')
Run Code Online (Sandbox Code Playgroud)
对查询数量没有影响.启用缓存上parler(如笔者建议在这里)也于事无补,因为相同的查询不重复,但这些过滤器的每一项被称为在翻译项目查询(IDS每一次都是不同的).所以,我要找的是内部过滤器上的select_related/prefetch_related.如果您已经解决了这个问题,我也会同时审核您的应用程序.
我有一个Django管理页面,用于具有单个内联模型的模型.当内联模型有许多项目(如75)时,页面加载速度非常慢(大约30秒).即使我排除了内联模型中的所有字段,只需渲染名称,也是如此.删除内联模型会导致页面加载速度非常快(以秒为单位).
如何让此页面加载速度更快?