Django管理缓存m2m关系

Django管理缓存m2m关系,django,django-models,django-cache,django-caching,django-cache-machine,Django,Django Models,Django Cache,Django Caching,Django Cache Machine,我有两种型号: 型号.py class City(models.Model): title = models.CharField(max_length=255) show = models.BooleanField(default=True) class Company(models.Model) title = models.CharField(max_length=255) cities = models.ManyToManyField(City, null

我有两种型号:

型号.py

class City(models.Model):
    title = models.CharField(max_length=255)
    show = models.BooleanField(default=True)

class Company(models.Model)
    title = models.CharField(max_length=255)
    cities = models.ManyToManyField(City, null=True, blank = True)
class CompanyAdmin(admin.ModelAdmin):
    search_fields = ('title',)
    filter_horizontal = ('cities',)
admin.py

class City(models.Model):
    title = models.CharField(max_length=255)
    show = models.BooleanField(default=True)

class Company(models.Model)
    title = models.CharField(max_length=255)
    cities = models.ManyToManyField(City, null=True, blank = True)
class CompanyAdmin(admin.ModelAdmin):
    search_fields = ('title',)
    filter_horizontal = ('cities',)
数据库中大约有23000个城市

当我在管理中编辑公司详细信息时,它将永远加载仅仅访问admin/myapp/company/12/需要2-3分钟-这太可怕了。

如何加快速度并缓存城市模型查询集?

您可以使用

对于一个数据库来说,23000实际上是“零”

首先,您需要确定减速的“罪魁祸首”,即哪个查询速度慢。这是一个很有帮助的地方。然后,您可以使用
EXPLAIN
手动运行查询,并查看可以改进的地方—例如,添加索引可能会有所帮助

也可以考虑使用或包。

另见: