【发布时间】:2021-10-15 10:03:12
【问题描述】:
我正在使用 rest_framework 开发一个 django 项目,但我遇到了序列化程序的问题。这是我的代码:
class CategorySerializer(serializers.ModelSerializer):
featured_product = ProductSerializer(read_only=True)
class Meta:
model = Category
fields = [
'title',
'featured_product',
]
class ProductSerializer(serializers.ModelSerializer):
category = CategorySerializer(read_only=True)
class Meta:
model = Product
fields = [
'title',
'price',
'category',
]
如您所见,在ProductSerializer 我使用CategorySerializer,在CategorySerializer 我需要使用ProductSerializer。如果我运行代码,我会得到NameError: name 'ProductSerializer' is not defined。
第一次尝试:
我尝试将它们写入两个不同的文件并将它们导入到两个文件的顶部,但出现Circular Import 错误
第二次尝试:
我在代码顶部定义了一个名为 ProductSerializer 类的空类,但它不起作用。
【问题讨论】:
-
在定义了
featured_product和category之后,您可以将它们分配给它们。 -
在您的
class ProductSerializer声明之后,只需执行CategorySerializer.featured_product = ProductSerializer(read_only=True)
标签: python django django-rest-framework django-serializer python-class