Python 类没有看到另一个类,如何修复此问题?

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

第一个类使用第二个类对象,反之亦然,我如何解决这个问题?有什么诀窍吗

错误: NameError:未定义名称“AktorSerializer”

  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并尝试一些新的东西,但是感谢您的建议,我应该在这里做得更好吗?这很有意义,谢谢