list_editable在保存时超级慢

时间:2016-12-28 18:17:46

标签: django django-admin

我已经为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'
    )

这是非常基本的,我不知道这需要多长时间。

你有什么想法我可以调查吗?或者你知道我做错了吗?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我最终通过管理员操作取代了list_editable。我的理论是,当你使用" list_editable"时,它会解析每个对象。因此,如果您有1,000,000个项目,它将解析每个项目。

这是我的解决方案:

    1---10---2
       \     
       5\   
           \ 
    4---4---3

它更快,因为它只更新所选项目。