Ошибка DRF: не удалось разрешить URL-адрес для связи с гиперссылкой, используя имя представления во вложенном сериализаторе - PullRequest
0 голосов
/ 24 сентября 2019

Я получаю следующую ошибку на DRF:

django.core.exceptions.ImproperlyConfigured:
Could not resolve URL for hyperlinked relationship using view name 
"quotationitemfile-detail". You may have failed to include the related
model in your API, or incorrectly configured the `lookup_field`
attribute on this field.

Я сделал поиск в Google по этому вопросу, и кажется, что ошибка связана с HyperlinkedModelSerializer, но дело в том, что я не использую его, яЯ использую обычные сериализаторы:


class QuotationItemFileSerializer(serializers.ModelSerializer):

    class Meta:
        model = QuotationItemFile
        fields = ["id", "url"]


class QuotationItemSerializer(serializers.ModelSerializer):
    files = QuotationItemFileSerializer(many=True)

    class Meta:
        model = QuotationItem


class QuotationSerializer(serializers.ModelSerializer):
    items = QuotationItemSerializer(many=True)

    class Meta:
        model = Quotation

И эта ошибка происходит, когда отправлять запрос ViewSet с использованием QuotationSerializer.

Я также заметил, что ошибка исчезает, если я закомментируюQuotationItemFileSerializer поэтому, я думаю, это связано с автоматическим переключением DRF к гиперссылкам.Но я не могу заставить это работать должным образом.

Если я добавляю ViewSet для QuotationItemFileSerializer, ошибка прекращается, но API возвращает гиперссылку вместо данных сериализатора

1 Ответ

0 голосов
/ 24 сентября 2019

Оказывается, проблема в том, что это поле url в моем сериализаторе:

    class Meta:
        model = QuotationItemFile
        fields = ["id", "url"]

Поле url заставило DRF попытаться сгенерировать гиперссылку для модели в моем ответе, поэтомуОшибка.Удаление url исправило мою проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...