Здравствуйте, я настроил Django проект, который включает в себя REST API, до сих пор это структура проекта:
django
│
├───apps
│ ├───store
│ | admin.py
│ | apps.py
│ | models.py
│ | serializers.py
│ | tests.py
│ | urls.py
│ | views.py
│ | viewsets.py
│ | __init__.py
│ ├───accounts
│ admin.py
│ apps.py
│ models.py
│ serializers.py
│ tests.py
│ urls.py
│ views.py
│ viewsets.py
│ __init__.py
├───main
asgi.py
router.py
settings.py
urls.py
wsgi.py
__init__.py
Внутри main / urls.py У меня есть что-то вроде этого (который настройка конечной точки URL-адреса API с помощью файла routers.py):
from django.contrib import admin
from django.urls import path, include
from .router import router
urlpatterns = [
# Default urls
path('admin/', admin.site.urls),
path('api/', include(router.urls)),
path('', include('apps.store.urls')),
]
Внутри main / routers.py Я регистрирую все свои наборы представлений для всего проекта:
from rest_framework.routers import DefaultRouter
from apps.store.viewsets import ItemViewSet, PurchaseViewSet, ReceiptViewSet
from apps.accounts.viewsets import ProfileViewSet, TransactionViewSet
router = DefaultRouter()
router.register('items', ItemViewSet)
router.register('purchases', PurchaseViewSet)
router.register('receipts', ReceiptViewSet)
router.register('profiles', ProfileViewSet)
router.register('transactions', TransactionViewSet)
Все работает хорошо, но моя проблема в том, что в этом routers.py мне нужно будет зарегистрировать все ViewSets для всего проекта, я думаю, это не поможет с модульностью и может сделать этот файл большим и запутанным.
ВОПРОС: Можно ли создать один routers.py для приложения, а затем каким-либо образом импортировать и объединить их в main / routers.py или есть какой-либо другой способ регистрации наборов представлений для каждого приложения внутри каждое соответствующее приложение? Или есть какой-то другой рекомендуемый метод?
Надеюсь, вопрос ясен, большое спасибо!