0

例子:

url(r'^/users/(?P<usr>[0-9]+)/$', 'home.views.who_user'),  

在我看来,我必须如何清理 usr?

4

1 回答 1

1

当您在视图中访问 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)
    ...
于 2013-05-13T04:31:03.263 回答