示例:
url(r'^/users/(?P<usr>[0-9]+)/$', 'home.views.who_user'),
在我看来,我如何清理usr?
答案 0 :(得分:1)
当您在视图中访问usr时,在您的情况下,它将是正则表达式指定的数字。如果对usr的值不是数字的上述格式的网址的任何请求将收到404页面。
i.e. /users/abcd/ will return 404
话虽如此,您仍然可能希望在您的视图中验证用户。例如,可以推断出您希望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)
...