Я столкнулся с проблемой при создании API для небольшого проекта.
Когда я пытался получить собственный URL для этажей. Это дает ImproperlyConfigured at /api/v1/projects/d5471eb5-de66-478f-8ba8-e820ba4a0662/floors/864bfe52-157d-4667-98a1-279b552e64d6/
Could not resolve URL for hyperlinked relationship using view name "apis:floor-detail". You may have failed to include the related model in your API, or incorrectly configured the 'lookup_field' attribute on this field.
# url.py
urlpatterns = format_suffix_patterns(
[
path(r"projects/", views.ProjectView.as_view(), name="project-list"),
path(
r"projects/<project_id>/",
views.ProjectView.as_view(),
name="project-detail",
),
path(
r"projects/<project_id>/floors/",
views.FloorView.as_view(),
name="floor-list",
),
path(
r"projects/<uuid:project_id>/floors/<uuid:floor_id>/",
views.FloorView.as_view(),
name="floor-detail",
),
]
class FloorSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Floor
fields = ("url","floor_name", "elevation", "project_id")
extra_kwargs = {
"url": {
"view_name": "apis:floor-detail",
"lookup_field": "floor_id",
},
"project_id": {
"view_name": "apis:project-detail",
"lookup_field": "project_id"
}
}
Я подумал, что это может быть проблема с установкой URL, потому что когда я изменяю свой url.py на
# url.py
urlpatterns = format_suffix_patterns(
[
path(r"projects/", views.ProjectView.as_view(), name="project-list"),
path(
r"projects/<project_id>/",
views.ProjectView.as_view(),
name="project-detail",
),
path(
r"projects/<project_id>/floors/",
views.FloorView.as_view(),
name="floor-list",
),
path(
r"floors/<uuid:floor_id>/",
views.FloorView.as_view(),
name="floor-detail",
),
]
Он работает нормально. Может кто-нибудь помочь, пожалуйста?