@Antigo_ptz

Как решить проблему вызова super() из функции?

Всем привет!
Есть класс-сериалайзер OrgLegalFormSerializer:
class OrgLegalFormSerializer(serializers.ModelSerializer):
   
    def update(self, instance, validated_data):
        return update_with_activation_check(self, instance, 'code', **validated_data)

    class Meta:
        model = OrgLegalForm
        fields = '__all__'


В этом классе переопределен метод update. В этом методе вызываю свой метод update_with_activation_check
Этот мой метод находится вне какого-либо класса.
def update_with_activation_check(self, instance, unique_code_field=None, **validated_data):
#какой-то код
   return super().update(instance, validated_data)


Проблема в том, что при вызове super().update(instance, validated_data) выскакивает ошибка super(): __class__ cell not found . Как необходимо доработать код?
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kgbplus
Сюда вынесу, кому нибудь пригодится:

class GrandFather():
    def update(self, cls):
        return super(cls, self).update()

class Father():
    def update(self):
        print("Luke, I am your father!")

class Son(Father,GrandFather):
    def test(self):
        GrandFather.update(self,Son)

test = Son()

test.test()


26d432e78e704aafb61013161477bc28.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы