我有一個有大約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