Ошибка при присвоении 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 в сериализаторе. Что бы я ни установил, возникает ошибка
Я пробовал отлаживать, но не нашел причину.