Как я могу исправить функцию реверса django для работы с текущим приложением? - PullRequest
0 голосов
/ 06 ноября 2019

У меня небольшой опыт работы с Django и API, и недавно я начал разрабатывать это приложение.

Моя структура кода выглядит следующим образом:

config/
    env/
        .env files
    requirements/
        __init__.py
        ...
    settings/
        __init__.py
        base.py
        local.py
    __init__.py
    urls.py
    views.py
    wsgi.py
projects/
    api/
        town/
            apps.py
            urls.py
            views.py
        ...
    core/
        models/
            town.py
        serializers/
            town_serializer.py
        ...
tests/
    test_town.py
manage.py

это файлproject/api/town.urls.py

from django.urls import path

from . import views

app_name = 'town'

urlpatterns = [
    path('town/', views.CreateTownView.as_view(), name='town-list'),
    path('town/<int:pk>/', views.TownViewSet.as_view(), name='town-detail')
]

И файл для config/settings/urls.py:

from django.contrib import admin
from django.urls import path, include
# from .views import views

urlpatterns = [
    path('admin/', admin.site.urls),
    # path('', views.index)
    path('api/', include('project.api.city.urls', namespace='city')),
    path('api/', include('project.api.town.urls', namespace='town'))

]

Я использовал маршруты типа localhost:8000/api/town, и у меня не было проблем с работой с API, и они работаютпросто хорошо. Единственная проблема возникает, когда я пытаюсь запустить тестовый модуль. Это часть теста, в которой появляется ошибка: - {

from django.db import IntegrityError
from django.test import TestCase
from project.core.models.town import Town
from django.urls import reverse

from rest_framework.test import APIClient
from rest_framework import status

import unittest

CREATE_TOWN_URL = reverse('town:town-list')
DETAIL_TOWN_URL = reverse('town:town-detail')

это ошибка:

raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'town-detail' with no arguments not found.

Я уже определил пространства имен в основных URL-адресах в urls.py в config, а также назвали town-list и town-detail в town URL-адресах, но не знаю, почему это происходит!

Этот является ссылкой на проект. Пожалуйста, помогите мне здесь.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...