当我在视图中捕获数据时,我如何清理数据?

时间:2013-05-13 00:47:08

标签: django django-views

示例:

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

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

1 个答案:

答案 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)
    ...