Skip to main content
 首页 » 编程设计

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

2024年10月24日36kerrycode

# main.py 
 
from rest_framework import serializers 
 
class FirstSerializer(serializers.ModelSerializer): 
    second = SecondSerializer( 
        read_only=True) 
 
class SecondSerializer(serializers.ModelSerialzier): 
    # ... 

我怎样才能做到这一点?

我的意思是,在定义一个类之前解除它的声明,这可能吗?怎么办?

原因

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

查看此部分:http://www.django-rest-framework.org/api-guide/relations/#nested-relationships

我想将一个 Serializer 嵌入到另一个 Serializer 中,但 Serializer Class 必须稍后定义。

那么如何让它发挥作用呢?

请您参考如下方法:

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

class A: 
    pass 
 
class B: 
    a = A() 
 
A.b = B() 

...python 类的动态特性允许您这样做。