我已经为Django管理员添加了一个模型,并且我为特定字段启用了list_editable。当我保存更改时,需要花费很多时间,并且在某些时候请求超时。
这里的模型:
class ClientASTM(models.Model):
client = ForeignKey2(Client, related_name='astms', verbose_name='client')
day = models.DateField(verbose_name='day')
last_occurence_date = models.DateField(verbose_name='last occurence', null=True, blank=True)
search_term = models.CharField(verbose_name='search term', max_length=255)
is_exclude = models.BooleanField(verbose_name='is exclude', default=False)
add_datetime = models.DateTimeField(verbose_name='add datetime', auto_now_add=True)
mod_datetime = models.DateTimeField(verbose_name='mod datetime', auto_now=True)
def __unicode__(self):
return u'%s: %s -> %s' % (self.client, self.search_term, self.day)
class Meta:
ordering = ('-day',)
unique_together = (('client', 'day', 'search_term'),)
verbose_name = 'Client ASTM'
这是我的模特管理员:
class ClientASTMAdmin(admin.ModelAdmin):
list_editable = (
'is_exclude',
)
list_display = (
'id',
'day',
'search_term',
'is_exclude'
)
这是非常基本的,我不知道这需要多长时间。
你有什么想法我可以调查吗?或者你知道我做错了吗?
非常感谢你的帮助。
答案 0 :(得分:0)
我最终通过管理员操作取代了list_editable。我的理论是,当你使用" list_editable"时,它会解析每个对象。因此,如果您有1,000,000个项目,它将解析每个项目。
这是我的解决方案:
1---10---2
\
5\
\
4---4---3
它更快,因为它只更新所选项目。