例子:
url(r'^/users/(?P<usr>[0-9]+)/$', 'home.views.who_user'),
在我看来,我必须如何清理 usr?
例子:
url(r'^/users/(?P<usr>[0-9]+)/$', 'home.views.who_user'),
在我看来,我必须如何清理 usr?
当您在视图中访问 usr 时,在您的情况下,它将是您的正则表达式指定的数字。对 usr 的值不是数字的上述格式的 url 的任何请求都将收到 404 页面。
i.e. /users/abcd/ will return 404
话虽如此,您仍然可能希望在您的视图中验证 usr。例如,可以推断您打算让 usr 变量引用现有的 Django 用户。在这种情况下,您需要检查用户是否存在。这是一个示例,它将根据用户 ID 查找 Django 用户(假设 usr 指的是用户 ID)。如果存在,它将返回一个用户实例,如果不存在,它将返回 404 错误页面。
from django.shortcuts import get_object_or_404
from django.contrib.auth.models import User
def this_view(request, usr):
user = get_object_or_404(User, pk=usr)
...