gpt4 book ai didi

django - 我可以在同一个应用程序中使用不同的根 URL 吗?

转载 作者:行者123 更新时间:2023-12-02 00:35:02 24 4
gpt4 key购买 nike

在我的 DRF 项目中,我有 2 个应用程序,UsersProductsProducts 有 2 个模型:CategoryProduct。我的根 URL conf 看起来像这样

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 中导入 View ,但这感觉不像是一个“干净”的解决方案。我应该考虑为类别创建一个单独的应用程序吗? Product 模型与 Category 有外键关系,对我来说,感觉好像 2 个单独的 App 只会让事情复杂化。

最佳答案

我最终选择了以下方法:我没有在我的 Products 应用程序中使用单个 urls.py,而是在应用程序中创建了一个 URL 模块并添加了两个urlconfs里面,CategoryProduct各一个。

#product/urls/producturls.py

urlpatterns = [
path('', views.ProductListCreateAPIView.as_view())
]

#product/urls/categoryurls.py

urlpatterns = [
path('', views.CategoryListCreateAPIView.as_view())
]

然后我 include() 都在我的根 urlconf

api_urls = [
path('users/', include('users.urls')),
path('products/', include('products.urls.producturls')),
path('categories/', include('products.urls.categoryurls'))
]

urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(api_urls))
]

Screenshot

关于django - 我可以在同一个应用程序中使用不同的根 URL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50037625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com