Python viewsets不使用添加的“^”和“$”,并且在字符串regex-django rest框架上以10为基数的int()的文本无效

Python viewsets不使用添加的“^”和“$”,并且在字符串regex-django rest框架上以10为基数的int()的文本无效,python,regex,django,django-rest-framework,django-rest-viewsets,Python,Regex,Django,Django Rest Framework,Django Rest Viewsets,我在djangorestframework router.register(r'city-list', CityListViewSet, base_name='city-list') 如上所述,此url有效,但如果我这样做: router.register(r'^city-list$', CityListViewSet, base_name='city-list') 它坏了,我得到了一个404错误。^从一开始就是一个用于模式匹配的正则表达式,$与^类似,但用于后面的模式匹配 此外,请查看以下

我在
djangorestframework

router.register(r'city-list', CityListViewSet, base_name='city-list')
如上所述,此url有效,但如果我这样做:

router.register(r'^city-list$', CityListViewSet, base_name='city-list')
它坏了,我得到了一个404错误
^
从一开始就是一个用于模式匹配的正则表达式,
$
^
类似,但用于后面的模式匹配

此外,请查看以下url:

router.register(r'venue-filter-options-list/(?P<city>[a-zA-Z]+)'
router.register(r'vince-filter-options-list/(?P[a-zA-Z]+)'
^
$
有相同的问题,我在
城市
占位符中输入字符串时出错

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

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

异常类型:ValueError

异常值:

基数为10的int()的文本无效:“chicago”

那没有任何意义,我的正则表达式是正确的

还有其他人有这个问题吗

  • 视图集是基于类的,您需要在url中调用
    .as\u view()
  • 您应该将方法指定为dict to
    as_view()
  • ViewSet get默认情况下需要查询
    pk
    字段,因此如果要使用其他内容,则需要更改ViewSet声明中的查找字段。错误是告诉您pk不需要字符串,而需要int值。 阅读更多的文档
  • 视图集是基于类的,您需要在url中调用
    .as\u view()
  • 您应该将方法指定为dict to
    as_view()
  • ViewSet get默认情况下需要查询
    pk
    字段,因此如果要使用其他内容,则需要更改ViewSet声明中的查找字段。错误是告诉您pk不需要字符串,而需要int值。 阅读更多的文档

  • 你能把代码放在占位符中芝加哥的位置吗?你能显示你的视图集吗?如果你只需要更改
    lookup\u字段
    ,只需添加
    lookup\u field=“你的字段名”
    在您的视图集中。您不需要编写自己的正则表达式。视图集旨在隐式地处理这些正则表达式。您可以将代码放在占位符中放置的位置吗?您可以显示您的视图集吗?如果您只需要更改
    查找字段
    ,只需添加
    查找字段=“您的字段\名称”
    在您的视图集中。您不需要编写自己的正则表达式。视图集旨在隐式地处理这些正则表达式。