我在 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 中发生了一些不寻常的事情。我将不胜感激您的建议。