Как добавить HyperlinkedRelatedField в модель из другого приложения?
Ниже приведено urls.py
из users
приложения.
from django.urls import path
from . import views
app_name = 'users'
urlpatterns = [
path('', views.UserList.as_view(), name='user-list'),
path('<int:id>/', views.UserDetail.as_view(), name='user-detail'),
]
url conf из snippets
приложения:
from django.urls import path
from . import views
app_name = 'snippets'
urlpatterns = [
path('', views.SnippetList.as_view(), name='snippet-list'),
path('<int:pk>/', views.SnippetDetail.as_view(), name='snippet-detail'),
path('<int:pk>/highlight/', views.SnippetHighlight.as_view(), name='snippet-highlight'),
]
и вот SnippetSerializer
from rest_framework import serializers
from . import models
class SnippetSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Snippet
fields = ['id', 'owner', 'title', 'code', 'highlight', 'linenos', 'language', 'style']
highlight = serializers.HyperlinkedIdentityField(view_name='snippets:snippet-highlight', format='html')
owner = serializers.HyperlinkedRelatedField(
read_only=True,
view_name='users:user-detail'
)
Ошибка, которую я получил
Неправильная конфигурация в /snippets/ Не удалось разрешить URL для отношения с гиперссылкой, используя имя представления "users:user-detail". Возможно, вы не включили связанную модель в свой API или неправильно настроили атрибут
lookup_field
для этого поля.
Моя ошибка в том, что я указал id
вместо pk
в шаблоне url приложения users
.
Такие вещи заставляют меня чувствовать себя расстроенным.