我有两种模式:
models.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)
admin.py
class CompanyAdmin(admin.ModelAdmin):
search_fields = ('title',)
filter_horizontal = ('cities',)
数据库中约有23000个城市。
当我在Admin中编辑公司详细信息时,它会永远加载!!! 只需访问admin / myapp / company / 12 /需要2-3分钟 - 这太可怕了。
如何加快速度并缓存City模型查询集?
答案 0 :(得分:1)
您可以使用raw_id_fields
class CompanyAdmin(admin.ModelAdmin):
raw_id_fields = ("cities",)
答案 1 :(得分:1)
23000其实"没有"对于数据库。
首先,你需要识别"罪魁祸首"减速,查询很慢。这是django-debug-toolbar
可以帮助很多的地方。然后,您可以使用EXPLAIN
手动运行查询,并查看可以改进的内容 - 例如,添加索引可能有所帮助。
另外,请考虑使用django-cache-machine
或johnny-cache
个包。
另见: