django.core.exceptions.AppRegistryNotReady: 模型尚未加载

django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet

在 Django 1.7 中,此代码导致 django.setup() 中的错误:

class MyModel(models.Model):
    special_foo=Foo.objects.filter(name__contains='special')

就我而言,我得到了这个:

django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

但我在 django.setup() 尝试再次 运行 django.setup() 时也看到了递归错误。

我用 class 级别的属性解决了这个问题。

class MyModel(models.Model):

    @classproperty
    def special_foo(cls):
        return Foo.objects.filter(name__contains='special')

遗憾的是 python 不支持开箱即用的 @classproperty

我使用了这里的实现