django - 如果我不复制 API 端点,Django Get 请求将返回空数组
问题描述
在过去的 2 个月里,我一直在努力解决我无法确定的非常奇怪的行为。
我的 django 应用程序 urls 文件之一如下所示:
urlpatterns = {
path('containers/', GetProductContainers.as_view()),
path('delete/<deleteTime>', DeleteProcessedStockTime.as_view()),
path('containers/', GetProductContainers.as_view()),
path('input/', InsertMultiProcessedStock.as_view()),
path('<str:stockT>/', ProcessedStockTimeView.as_view(), name="stockstime"),
path('', ProductListDetailsView.as_view(), name="details"),
}
如您所见,这条路径path('containers/', GetProductContainers.as_view()),
在我的 urlpatterns 中有两次。这样做的原因是,只要我删除一个,它就会返回一个空数组。我删除哪一个并不重要!如果两者都存在,我会得到我期望的 319 条记录。我可以删除这两者中的任何一个,它会返回一个空数组,但是一旦我有 2 它就会再次工作。
谁能想到对此的解释,或者我什至可以如何开始调试它?
解决方案
我相信这是因为您将 urlpatterns 创建为一个集合而不是一个列表。集合是无序类型,因此 url 模式不会以正确的顺序解析。
例子:
>>> {
... path('containers/', TestView.as_view()),
... path('delete/<deleteTime>', TestView.as_view()),
... path('input/', TestView.as_view()),
... path('<str:stockT>/', TestView.as_view(), name="stockstime"),
... path('', TestView.as_view(), name="details"),
... }
{<URLPattern '<str:stockT>/' [name='stockstime']>, <URLPattern '' [name='details']>, <URLPattern 'containers/'>, <URLPattern 'delete/<deleteTime>'>, <URLPattern 'input/'>}
>>> [
... path('containers/', TestView.as_view()),
... path('delete/<deleteTime>', TestView.as_view()),
... path('input/', TestView.as_view()),
... path('<str:stockT>/', TestView.as_view(), name="stockstime"),
... path('', TestView.as_view(), name="details"),
... ]
[<URLPattern 'containers/'>, <URLPattern 'delete/<deleteTime>'>, <URLPattern 'input/'>, <URLPattern '<str:stockT>/' [name='stockstime']>, <URLPattern '' [name='details']>]
推荐阅读
- coq - 如何做需要相互递归的定理?
- python - TypeError:在运行 caffe 示例期间需要一个类似字节的对象,而不是 python3 中的“str”
- ios - 如何在 RxSwift 中设置 RxTimeInterval 以防抖动?
- reactjs - 填充对象数组
- scala - 如何将一个 lambda 表达式对象分配给另一个?
- r - 当 droplevels() 在 R 中不起作用时,删除一个因子的级别
- nginx - 如何将 nginx 配置为 proxy_pass?
- python - Opencv 是否允许您使用 6 个点计算 3x4 透视变换?
- lua - 是否有类似于 lua 的可沙盒编译的编程语言
- flutter - 安装后我无法运行任何颤振命令。什么都没发生