My url_conf
выглядит следующим образом,
...appointments/<slug:company>/ ^service_booking/(?P<pk>[^/.]+)/$
Фирменная часть получается в сериализаторе через context
.
Я мог бы создать HyperlinkedIdentityField
, если бы у URL был pk
kwarg, как указано в документах . Но с добавленным полем company
я не могу этого сделать.
В настоящее время я использую SerializerMethodField
для решения этой проблемы следующим образом:
def get_url(self, obj):
return self.context['request'].build_absolute_uri(
reverse('appointment:service-booking',
kwargs=dict(company=self.context['company'].id,
pk=obj.pk)
)
)
Я считаю, что HyperlinkedIdentityField
не будет иметь доступа к контексту до того, как он фактически будет передан в сериализатор.
Любая помощь приветствуется. Спасибо.