django - django pk 不适用于 pk 值高于 9
问题描述
嗨,我是 django 的新手,我现在想弄清楚一个小时,为什么主键(pk)不能正常工作以更新我的表单以获取高于 9 的值。它说当前路径 tache_app/TacheUpdate/15 没有不匹配任何这些。我已经多次检查 id 15 并且它确实存在。我的猜测是主键(pk)不适用于 9 以上的值。这是我的代码,请帮助解决。为我的英语道歉,它不是很好。我住在法国。
在我的 urls.py 文件中
"""Mettre les urls pour la tache app etc etc etc """
from django.urls import path
from django.conf.urls import url
from . import views
urlpatterns = [
path('tache_ajouter/' , views.tache_ajouter , name='tache_ajouter' ),
url(r'^TacheCreate$', views.TacheCreate.as_view(), name='TacheCreate'),
url(r'^TacheUpdate/(?P<pk>\d)$', views.TacheUpdate.as_view(), name='TacheUpdate'),
url(r'^TacheDelete/(?P<pk>\d)$', views.TacheDelete.as_view(), name='TacheDelete'),
]
class TacheUpdate(UpdateView):
"""
Creation d une view afin de modifier les
d une tache
"""
model = Tache
template_name = "tache_app/edition.html"
fields = "__all__"
from_class = TacheForm
success_url = reverse_lazy('tache')
如果你需要什么请问我。
解决方案
正\d
则表达式部分匹配一个数字,而不是多个数字。为了匹配多个数字,您添加一个+
量词。这个+
量词意味着“一个或多个”,因此\d+
意味着一个或多个数字。所以你的网址应该是这样的:
urlpatterns = [
path('tache_ajouter/', views.tache_ajouter, name='tache_ajouter'),
url(r'^TacheCreate$', views.TacheCreate.as_view(), name='TacheCreate'),
url(r'^TacheUpdate/(?P<pk>\d+)$', views.TacheUpdate.as_view(), name='TacheUpdate'),
url(r'^TacheDelete/(?P<pk>\d+)$', views.TacheDelete.as_view(), name='TacheDelete'),
]
推荐阅读
- linux - 如何在设备树中指定 gpiochip 的名称?
- python - 在python的while循环中使用continue
- php - Git 将当前提交的哈希值存储在文件中
- emacs - 在具有视网膜显示的mac上的乳胶模式下,emacs中预览乳胶的低分辨率
- r - 标识两个值之间的观察值的组变量
- ios - 在所有视图控制器之间共享从服务器获取的数据的正确方法?
- node.js - 使用 Nodejs、Express、Mongoose 和 React 将图像上传到 MongoDB
- java - Basic Java While 逻辑,它是如何工作的?
- excel - 即使每一行都有特定值,如何跳转过滤器生成的隐藏行并选择第一个非隐藏行或更好的单元格?
- javascript - 如何让 React 显示错误