В моем проекте DRF у меня есть 2 приложения, Users
и Products
.Products
имеет 2 модели: Category
и Product
.Мой корневой URL-адрес выглядит так:
api_urls = [
path('users/', include('users.urls')),
path('products/', include('products.urls'))
]
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(api_urls))
]
и products.urls
urlpatterns = [
path('', views.ProductListCreateAPIView.as_view())
]
Я хочу, чтобы моя схема API была похожа на
/api/users/
/api/products/
/api/categories/
Прямо сейчасэто хорошо работает для первых двух URL, но, очевидно, не для третьего, т. е. если бы я добавил
path('categories', views.CategoriesListCreateAPIView.as_view())
в мои products.urls, схема URL была бы
/api/products/categories/
Мой вопрос: есть ли способ достичь цели /api/categories/
без разделения Category
на собственное приложение?Я чувствую, как будто это слишком незначительно, чтобы гарантировать наличие собственного приложения и должно быть в том же приложении, что и Product
.Очевидно, я мог бы просто импортировать представления непосредственно в корневой URL-адрес conf, но это не похоже на «чистое» решение.Должен ли я подумать о создании отдельного приложения для категории?Модель продукта имеет отношение внешнего ключа к категории, и мне кажется, что 2 отдельных приложения просто усложняют ситуацию.