由于循环导入,因此需要以这种方式加载模块:
try:
from ..foo import serializers as foo_serializers
except ImportError:
import sys
foo_serializers = sys.modules['app.foo.serializers']
当我在这样的类定义中使用已加载的模块时,它会显示app.foo.serializers has no attribute FooSerializer
,尽管它肯定具有:
class SomeSerializer(ModelSerializer):
foo_field = foo_serializers.FooSerializer()
但是当我在类函数中使用foo_serializers.FooSerializer
时,它可以工作。这是什么意思?加载类定义时,sys.modules
中的模块是否已完全加载?这可能是个问题吗?