在 Django Rest-framework 中定义之前引用序列化器类

Alf*_*ang 6 python django syntax python-3.x django-rest-framework

# main.py

from rest_framework import serializers

class FirstSerializer(serializers.ModelSerializer):
    second = SecondSerializer(
        read_only=True)

class SecondSerializer(serializers.ModelSerialzier):
    # ...
Run Code Online (Sandbox Code Playgroud)

我怎样才能使这成为可能?

我的意思是,在定义类之前取消类的声明,这可能吗?如何?

原因

事实上,我正在 django-rest-framework 上进行开发。

看到本节:http ://www.django-rest-framework.org/api-guide/relations/#nested-relationships

我想将一个序列化器嵌入到另一个序列化器中,但序列化器类必须稍后定义。

那么如何使这项工作有效呢?

hir*_*ist 4

一种奇怪的方法是在B定义后添加类变量:

class A:
    pass

class B:
    a = A()

A.b = B()
Run Code Online (Sandbox Code Playgroud)

...Python 类的动态特性允许您做到这一点。