我有一个有大约500万条记录的表格模型。目前django管理员对于列表显示页面非常慢。加载页面可能需要一分钟或更多时间。如何加快Django管理页面?
有没有办法优化列表显示页面?并在10秒内加载?提前致谢。
models.py
class Notification(models.Model):
id = models.AutoField(primary_key=True)
token = models.ForeignKey(Token)
alert = models.ForeignKey(Alert)
created_at = models.DateTimeField(auto_now=True)
is_sent = models.BooleanField(default=False)
is_processed = models.BooleanField(default=False)
error_sending = models.BooleanField(default=False)
# ...
def __unicode__(self):
return u'%s' % (self.id)
admin.py
class AppNotification(admin.ModelAdmin):
fields = ['is_sent','is_processed','error_sending']
#
list_display = ('token_code','is_sent','is_processed')
#
search_fields = ('token','alert')
#
list_select_related = ('alert', 'token')
#
list_per_page = 30
admin.site.register(Notification,AppNotification)
的Django 1.6版
解决方案
class AppNotification(admin.ModelAdmin):
readonly_fields = ('token','alert')
fields = ['is_sent','is_processed','error_sending','token','alert']
#
list_display = ('id','is_sent','is_processed','error_sending')
#
search_fields = ['token__token']
#
list_per_page = 50
admin.site.register(Notification,AppNotification)
你有解决办法:'list_per_page'!这不行吗?分页是解决这些问题的最明显方式 – karthikr
不幸的是,list_per_page没有任何区别。 这是非常缓慢的,因为该表有超过500万条记录。其他django管理页面的记录数较少,加载速度非常快。 – ipegasus
请发布省略的通知型号代码。 – allcaps