Не удалось разрешить URL для отношения с гиперссылкой, используя имя представления "v1:resources:profiles:profile_detail".

Я получаю эту ошибку и пытаюсь исправить ее уже несколько часов. Я думаю, что проблема как-то связана с пространствами имен. Я пробовал несколько решений, которые нашел, но ни одно из них не работает.

Эта строка -> profile = serializers.HyperlinkedRelatedField(read_only=True, view_name="v1:resources:profiles:profile_detail") дает мне ошибку Could not resolve URL for hyperlinked relationship using view name "v1:resources:profiles:profile_detail". Я перепробовал множество решений и в итоге получил это утомительное вложенное пространство имен

  Project structure looks something like this
  manage.py
  src/
     wsgi.py
     asgi.py
     urls.py
     apps/
         urls.py
         authentication/
                       urls.py
          resources/
                   urls.py
                   profiles/
                           urls.py
                   posts/
                   websocketchat/
                   filteringrecommender/

src/urls.py

urlpatterns = [
path('admin/', admin.site.urls),
path('v1/', include('src.apps.urls', namespace='v1'))]

src/apps/urls.py

app_name = 'v1'

urlpatterns = [
   path('auth/', include('src.apps.authentication.urls', namespace='auth')),
   path('resources/', include('src.apps.resources.urls', namespace='resources')),]

src/apps/resources/urls.py

app_name = 'resources'

urlpatterns = [
    path('profiles/', include('src.apps.resources.profiles.urls', namespace='profiles')),]

src/apps/resources/profiles/urls.py

app_name='profiles'
urlpatterns = [
   path('', views.ProfileListView.as_view(), name='profiles'),
   path('<str:profile_id>', views.ProfileDetailView.as_view(), name='profile_detail')]

src/apps/authentication/serializers.py

class UserSerializer(serializers.ModelSerializer):
profile = serializers.HyperlinkedRelatedField(read_only=True, view_name="v1:resources:profiles:profile_detail")

class Meta:
    model = User
    fields = ('id', 'username', 'email', 'profile')
Вернуться на верх