gpt4 book ai didi

django - 无法在 Django 路由器中添加 url

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

我无法添加指向 views.py 中方法的工作人员 URL。在下面的 urls.py 配置中,我创建了一个 DefaultRouter,并注册了 6 个 URL。前 5 个工作正常(它们是基于类的 View ),但是最后一个 URL(workers,这是基于方法的 View )不起作用。此 URL 与 url.conf 中列出的任何 URL 都不匹配。我收到错误消息“使用 maidFactory.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式:”。 . . . . . .当前的 URL,workers/,与其中任何一个都不匹配。

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
router.register(r'slots', views.SlotViewSet)
router.register(r'city', views.CityViewSet)
router.register(r'location',views.LocationViewSet,base_name='locationMy')
router.register(r'workers',views.WorkerViewSet,base_name='getWorkersBySlotAndLocation')

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
url(r'^', include(router.urls)),
#url(r'^', include('maidFactory.api.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^auth/', include('rest_framework_social_oauth2.urls')),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))]

我的基于方法的 View 如下:

def WorkerViewSet(request):
cursor = connection.cursor()
#cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])
cursor.execute("select p.wid,p.fname, a.description from workerProfile as p, workerAccount as a where a.isactive=1 and a.wid=p.wid")
row = cursor.fetchone()
return HttpResponse(row)

最佳答案

您的 WorkerViewSet 不是实际的 DRF ViewSet但是基于 Django 函数的 View 返回 Django HttpResponse。

您应该将其转换为适当的 DRF View 集,然后使用该 View 集注册您的路由器。

另一种选择是将此作为 url 添加到您的 urls 文件的 urlpatterns 中,它应该可以完美运行。

urlpatterns = [
url(r'^my/url/path/$', my_views.WorkerViewSet), # This will work
....
]

关于django - 无法在 Django 路由器中添加 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32325190/

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