Django:配置错误的url:括号不匹配

0 投票
1 回答
542 浏览
提问于 2025-05-01 06:30

我正在我的Mac上开发一个网站,使用的是虚拟机(VM),然后把它部署到一个远程的UAT服务器上。这个虚拟机的操作系统和软件环境和UAT服务器以及正式服务器是一样的。当我尝试访问我网站的UAT版本时,出现了以下错误:

"^accounts/update-user-group/(?P<pk>\d" is not a valid regular expression: unbalanced parenthesis

乍一看,问题似乎很明显:给定的URL模式不完整。不过,我的urls.py文件里有正确的完整URL:

# -*- coding: utf-8 -*-

from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from django.conf.urls import patterns, url

from views import UserGroupList, UserGroupDetail
from views import UserGroupCreate, UserGroupUpdate, UserGroupDelete
from views import UserDeletedGroups, RecoverDeletedGroup


urlpatterns = patterns('',
    url(_(r'^accounts/create-user-group/$'), UserGroupCreate.as_view(), name='user_group_create'),
    url(_(r'^accounts/update-user-group/(?P<pk>\d+)/$'), UserGroupUpdate.as_view(), name='user_group_update'),
    url(_(r'^delete/(?P<pk>\d+)/$'), UserGroupDelete.as_view(), name='user_group_delete'),
    url(_(r'^accounts/user-group-deleted/$'), UserDeletedGroups.as_view(), name='user_group_deleted_list'),
    url(_(r'^recover/(?P<pk>\d+)/$'), RecoverDeletedGroup.as_view(), name='user_group_recover_deleted'),
    url(_(r'^accounts/user-group-details/(?P<pk>\d+)/$'), UserGroupDetail.as_view(), name='user_group_detail'),
    url(_(r'^accounts/user-group-list/$'), UserGroupList.as_view(), name='user_group_list'),
)

所以这个错误似乎是由urlpatterns中的第二个正则表达式引起的。但是,如果我把正则表达式改成这样:

url(_(r'^accounts/update-user-group/(?P<pk>[\d]+)/$'), UserGroupUpdate.as_view(), name='user_group_update'),

那么错误就会转到下一行。我这里做的只是给pk参数的\d加上了方括号。为什么这么简单的变化会导致错误?而且为什么这个问题只在我的UAT环境中出现,而在本地开发时却没有?

暂无标签

1 个回答

0

丹尼尔的问题让我找到了正确的方向。我的PO文件中的问题网址翻译不完整,所以确保这个翻译正确后,我的问题就解决了。

撰写回答