1

我有以下指向的viewsets网址djangorestframework

router.register(r'city-list', CityListViewSet, base_name='city-list')

如上所述,此网址有效,但如果我这样做:

router.register(r'^city-list$', CityListViewSet, base_name='city-list')

它坏了,我得到一个404 错误。the^是一个从头开始进行模式匹配的正则表达式, the$就像^后面的模式匹配但是。

另外,请查看此网址:

router.register(r'venue-filter-options-list/(?P<city>[a-zA-Z]+)'

遇到同样的问题,^$我在city占位符中输入字符串时出现错误

例如,如果我在浏览器中调用 url 时chicago放入占位符city

我在 django 调试页面中收到以下错误:

异常类型:ValueError

异常值:

基数为 10 的 int() 的无效文字:'chicago'

这没有任何意义我的正则表达式是正确的。

其他人有这个问题吗?

4

1 回答 1

0
  1. 视图集是基于类的,您需要.as_view()在 url 中调用。
  2. 您应该将方法指定为 dictas_view()
  3. ViewSet get期望pk字段默认查询,所以如果你想使用别的东西,你需要改变ViewSet声明中的查找字段。该错误告诉您pk需要一个 int 值而不是字符串。从文档中阅读更多内容http://www.django-rest-framework.org/api-guide/viewsets/
于 2017-07-18T09:09:22.850 回答