【发布时间】:2021-09-14 06:30:38
【问题描述】:
当我将此行 cart = CartSerializer() 插入序列化程序以获取详细信息时,我收到错误 ImportError: cannot import name 'MealSerializer' from partially initialized module 'delivery_api.main.serializers' (most likely due to a circular import)。这是什么原因,如何解决?
cart/serializers.py
class CartMealSerializer(serializers.ModelSerializer):
meal = MealSerializer()
class Meta:
model = CartMeal
fields = ['id', 'meal', 'qty', 'final_price']
class CartSerializer(serializers.ModelSerializer):
meals = CartMealSerializer(many=True)
owner = CustomerSerializer()
class Meta:
model = Cart
fields = '__all__'
main/serializers.py
class OrderSerializer(serializers.ModelSerializer):
cart = CartSerializer() *<--- This line causes an error*
class Meta:
model = Order
fields = ['first_name', 'last_name', 'cart', 'phone', 'address', 'status', 'created_at']
请帮我解决这个问题
【问题讨论】:
-
您的
MealSerializer可能与OrderSerializer定义在同一个模块中,因此您有两个相互引用的序列化程序。 -
我将 OrderSerializer 移动到 cart/serializers.py 并解决了我的问题,谢谢
标签: django django-rest-framework django-serializer