使用用户名" x"查询用户的Sqlite数据库;使用标准的django.contrib.auth.models.User模型

时间:2017-04-24 15:34:07

标签: python django sqlite django-models django-views

我试图绕过我遇到的问题。

我想向用户显示一个页面,通过输入用户名可以查找用户。

然而,我无法解决如何做到这一点。我是否在我的视图中提供了一个函数,在该视图中执行从数据库中检索用户的查询?例如,检索他的用户名或ID并转到他的个人资料页面?我似乎无法掌握如何做到这一点,我一直在寻找这方面的例子,但我找不到任何东西,所以我希望有人可以帮助我!

1 个答案:

答案 0 :(得分:1)

是的,在最简单的级别,您将拥有一个视图,该视图接受表单提交,该表单提交获取字段的值并执行User.objects.get(username=my_variable)之类的操作并返回结果(如果有)。您应该将呼叫包裹在try / except块中,这样如果该用户名不存在此类用户,您的视图就不会爆炸。 Django提供shortcut function for doing just this,因此您可以user = get_object_or_404(User, username=my_variable)代替上面的行。您的整个视图看起来像

from django.shortcuts import render, get_object_or_404

def username_search(request):
  # if there are any form values sent in a GET
  if request.GET:
    my_variable = request.GET.get('username', '')
    user = get_object_or_404(User, username=my_variable)
  else:
    user = None
  return render(request, 'some_template.html', {'user': user}

实际上,您可能还会创建一个Django form来对提交内容进行一些验证,并使表单更容易呈现。