Django Rest Framework - TypeError: reverse() получил неожиданный аргумент ключевого слова 'request'

У меня есть несколько тестов, написанных для приложения django, и все тесты должны пройти, чтобы произошло автоматическое развертывание.

Неожиданно начали выходить из строя несколько тестов, ни один из которых не был затронут в последнем коммите. Ошибка исходит от сериализатора, использующего функцию 'reverse' фреймворка django rest.

# serializers.py

from rest_framework.reverse import reverse
from rest_framework.serializers import ModelSerializer, SerializerMethodField
from my_app.models import ConfigVersion

class ConfigVersionMetadataSerializer(ModelSerializer):

    class Meta:
        model = ConfigVersion
        fields = ('id', 'config', 'config_name',
                  'hyperlink', 'version')

    hyperlink = SerializerMethodField()

    def get_hyperlink(self, obj):
        return reverse(
            'versions-list',
            kwargs={
                'configurations_pk': obj.config.id,
                'version_pk': obj.id
            },
            request=self.context['request']
            )

Все тесты, вызывающие этот сериализатор, теперь проваливаются с ошибкой TypeError: reverse() got an unexpected keyword argument 'request'

В документации по остальным фреймворкам Django говорится, что 'request' является включенным и рекомендуемым аргументом https://www.django-rest-framework.org/api-guide/reverse/.

После изучения документации я искал изменения версии зависимостей в журналах сборки, чтобы узнать, были ли изменения кода, но единственное обновление зависимости предположительно не связано с этим (pytz). Я не совсем понимаю источник этой проблемы, поскольку пару дней назад тесты работали нормально, и, похоже, не было никаких изменений в тестах, сериализаторах, представлениях или необходимых библиотеках.

попробуйте вместо этого использовать reverse_lazy.

    return reverse_lazy(
        'versions-list',
        kwargs={
            'configurations_pk': obj.config.id,
            'version_pk': obj.id
        },
        request=self.context['request']
        )
Вернуться на верх