Python 类没有看到另一个类,如何修复此问题?
第一个类使用第二个类对象,反之亦然,我如何解决这个问题?有什么诀窍吗 错误: NameError:未定义名称“AktorSerializer”Python 类没有看到另一个类,如何修复此问题?,python,class,django-rest-framework,Python,Class,Django Rest Framework,第一个类使用第二个类对象,反之亦然,我如何解决这个问题?有什么诀窍吗 错误: NameError:未定义名称“AktorSerializer” class FilmSerializer(serializers.ModelSerializer): extrainfo = InfoSerializer(many=False) recenzje = RecenzjeSerializer(many=True) aktorzy = AktorSerializer(many=Tr
class FilmSerializer(serializers.ModelSerializer):
extrainfo = InfoSerializer(many=False)
recenzje = RecenzjeSerializer(many=True)
aktorzy = AktorSerializer(many=True)
class Meta:
model = Film
fields = ('id', 'nazwa', 'opis', 'rok', 'rating', 'extrainfo', 'recenzje', 'aktorzy')
class AktorSerializer(serializers.ModelSerializer):
filmy = FilmSerializer(many=True)
class Meta:
model = Aktor
fields = ('imie', 'filmy')
正如我在评论中提到的,使用相互递归序列化程序将使DRF尝试生成无限深的递归输出:
film: Film 1
film.aktorzy[0]: Actor 1
film.aktorzy[0].filmy[0]: Film 1
film.aktorzy[0].filmy[0].aktorzy[0]: Actor 1
film.aktorzy[0].filmy[0].aktorzy[0].filmy[0]: Film 1
...
你可能会想要一个不同的连载演员在电影;这也会解决您最初的问题
class AktorWithoutFilmsSerializer(serializers.ModelSerializer):
class Meta:
model = Aktor
fields = ("imie",)
class FilmSerializer(serializers.ModelSerializer):
extrainfo = InfoSerializer(many=False)
recenzje = RecenzjeSerializer(many=True)
aktorzy = AktorWithoutFilmsSerializer(many=True)
class Meta:
model = Film
fields = (
"id",
"nazwa",
"opis",
"rok",
"rating",
"extrainfo",
"recenzje",
"aktorzy",
)
class AktorSerializer(serializers.ModelSerializer):
filmy = FilmSerializer(many=True)
class Meta:
model = Aktor
fields = ("imie", "filmy")
使用这样的序列化程序结构不会很愉快,因为它们是相互递归的。您将获得无限深入的输出。出于学习目的,我刚刚开始使用drf并尝试一些新的东西,但是感谢您的建议,我应该在这里做得更好吗?这很有意义,谢谢