Ошибка при присвоении HyperlinkedIdentityField полю с именами, отличными от "url"

Я пытаюсь применить HATEOAS к API REST-фреймворка Django.

У меня есть модель под названием Coupon:

class Coupon(models.Model):

code = models.CharField(
    max_length=10,
    help_text='Promotion code to get free access to any product or service.'
)

description = models.CharField(max_length=200, blank=True)

expires = models.DateField()

Затем HyperlinkedModelSerializer:

class CouponModelSerializer(serializers.HyperlinkedModelSerializer):

# the problem
url = serializers.HyperlinkedIdentityField(view_name='market-api:coupons-detail')

created_by = serializers.SlugRelatedField(
    read_only=True,
    slug_field='username'
)

class Meta:
    model = Coupon
    exclude = ['modified', 'active']
    read_only_fields = ['id', 'created_by', 'created']

Наконец КупоныВсе:

class CouponsViewSet(DestroyIotaModelMixin, viewsets.ModelViewSet):

permission_classes = [AllowAny]
queryset = Coupon.objects.filter(active=True)
serializer_class = CouponModelSerializer

Набор представлений зарегистрирован с маршрутизатором по умолчанию

router = DefaultRouter()
router.register(r'coupons', CouponsViewSet, basename='coupons')

А в проекте urls:

path('market-api/', include(('iota.market.urls', 'market'), namespace='market-api'))

Проблема возникает, когда я изменяю имя атрибута HyperlinkedIdentityField в сериализаторе. Что бы я ни установил, возникает ошибка

Доказательства: enter image description here enter image description here

Я пробовал отлаживать, но не нашел причину.

Вернуться на верх