У меня есть приложение Django, с файлом, подобным следующему
app_something/url.py
:
from django.urls import include, path, re_path
from rest_framework import routers
from . import views
slashless_router = routers.DefaultRouter(trailing_slash=True)
router = routers.DefaultRouter()
router.register(r'complex-name', views.ComplexNameModelViewSet)
router.register(r'simple', views.SimpleModelViewSet)
app_name='something'
urlpatterns = [
path('api/', include(router.urls)),
]
Работает отлично. Или это то, что я привык думать. Теперь я пытаюсь добавить тесты (да, мои плохие, они должны быть там первыми)
НО, теперь в моем test_complex_name_api.py
:
from django.urls import reverse
from rest_framework import status
from app_something import models, serializers
SIMPLE_MODEL_NAME_URL = reverse('something:simple-list')
COMPLEX_MODEL_NAME_URL = reverse('something:complex-name-list')
# ...
# My Tests
Но, когда я запускаю свой Тесты Я получил следующую ошибку:
django.urls.exceptions.NoReverseMatch: Reverse for 'complex-name-list' not found. 'complex-name-list' is not a valid view function or pattern name.
SimpleModel
работает довольно круто. Итак, я думаю, что это связано с именем. Но я не нашел, какой шаблон имени использовать? Должен ли я переименовать URL-адрес или я все еще могу использовать его таким образом, и мне не хватает только той части документов, в которой говорится об этом? (Читаю: https://www.django-rest-framework.org/api-guide/routers/)