python - Django DRF 路由不是有效的正则表达式
问题描述
我想使用带有@action
装饰器的 DRF 视图集,但是当我调用该端点时,我得到了错误:
django.core.exceptions.ImproperlyConfigured:
"^\.(?P<format>[a-z0-9]+)/?\.(?P<format>[a-z0-9]+)/?$" is not a valid regular expression:
redefinition of group name 'format' as group 2; was group 1 at position 32
这里是url.py
:
router = routers.DefaultRouter()
router.register(r"", GenreViewSet, basename="genre")
urlpatterns = router.urls
和viewsets.py
:
class GenreViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]
pagination_class = None
queryset = Genre.objects.all()
def get_serializer_class(self):
if self.action == "list":
return GenreSerializer
@action(detail=True, methods=["patch", "delete"], url_path="favourite")
def make_genre_favourite(self, request, pk=None):
genre = self.get_object()
# Other code and responses here.
父 url 来自/api/genre/
. 端点有效,list
它返回所有类型,它是给出错误的操作。
任何帮助都非常感谢。我已经尝试过format_suffix_patterns
,但如果您可能会问的话,没有运气。
解决方案
在对这个错误进行了更多研究后,发现它很常见,并且有很多原因可能导致它,主要是与 with format_suffix_patterns
。在urls.py
我的父母中
urlpatterns = [
path("api/", ...),
# more paths,
]
urlpatterns = format_suffix_patterns(urlpatterns)
对于遇到此问题的任何人,我的解决方法是删除urlpatterns = format_suffix_patterns(urlpatterns)
行。
推荐阅读
- rust - 有没有办法编写一个在循环中使用 odbc::Statement 的函数?
- python - 如何在熊猫数据框中找到非零元素的行和列
- ios - 如何使用 Firebase Firestore 中的数据填充 TableView?
- javascript - 如何在 react-native 上正确防止 TextInput 模糊?
- java - 为错误 Forbidden 实现自定义异常处理程序
- c++ - 继承、覆盖和虚函数,避免重复代码
- javascript - 使用三个级别的自定义排序标准对对象数组进行排序
- sql - 在 SQL 中选择 MAX
- installation - gpg: 没有找到有效的 OpenPGP 数据。安装jitsi
- powerbi - Dax Measure - 计算员工行具有特定值的次数