当我使用我的自定义URL转换器时,我收到了这个错误
Reverse for 'user-update' with keyword arguments '{'pk': 'Rwdr4l3D'}' not found. 1 pattern(s) tried: ['users/(?P<pk>[a-zA-Z0-9](8,))/update/\\Z']
问题: 为什么PK不匹配正则表达式有什么问题 以下提供了详细信息
urls.py
from utils.url import HashIdConverter
register_converter(HashIdConverter, "hashid")
app_name = "users"
urlpatterns = [
path("<hashid:pk>/update/", views.UserUpdateView.as_view(), name="user-update"),
*******
utils/url.py
class HashIdConverter:
regex = f'[a-zA-Z0-9]{8,}'
def to_python(self, value):
return h_decode(value)
def to_url(self, value):
return h_encode(value)
template
我试过用
<a href="{% url 'users:user-update' pk=user.hashed_id %}"
另外,
<a href="{% url 'users:user-update' user.hashed_id %}"
其中哈希德_id如下所示
def hashed_id(self):
return h_encode(self.id)
他们两个都不管用