1

我在 Django 管理员中遇到了一个关于延迟字段的奇怪问题。以下是模型的结构。

class LightweightManager(models.Manager):
    def get_query_set(self):
        return super(LightweightManager, self).get_queryset()\
            .defer('huge_field')\
            .filter(trash=False)


class MyModel(models.Model):
    # ...
    huge_field = jsonfield.JSONField()

    lightweight = LightweightManager()

    def delete(self, using=None):
        # ...
        self.trash = True

MyModel从管理员删除 a时,Web 服务器超时。在开发服务器中它完成但显然需要很长时间。在删除确认管理页面上,我得到一个相关模型“MyModel_ deferred_huge_field”(延迟字段)。据我所知,django.db.models.deletion.Collector 中发生了一些不寻常的事情。我将不胜感激您的建议。

4

0 回答 0