我试图绕过我遇到的问题。
我想向用户显示一个页面,通过输入用户名可以查找用户。
然而,我无法解决如何做到这一点。我是否在我的视图中提供了一个函数,在该视图中执行从数据库中检索用户的查询?例如,检索他的用户名或ID并转到他的个人资料页面?我似乎无法掌握如何做到这一点,我一直在寻找这方面的例子,但我找不到任何东西,所以我希望有人可以帮助我!
答案 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来对提交内容进行一些验证,并使表单更容易呈现。