django pk对于大于9的pk值不起作用

问题描述 投票:1回答:1

嗨,我在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') 

如果您需要任何东西,请问我。

django url view
1个回答
0
投票

\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'),
]
© www.soinside.com 2019 - 2024. All rights reserved.