我正在努力解决我遇到的问题。
我想向用户展示一个页面,他们可以在其中输入用户名来查找用户。
但是我不知道如何做到这一点。我是否在 View 中提供一个函数来执行从数据库检索用户的查询?例如检索他的用户名或 ID 并转到他的个人资料页面?我似乎不知道如何做到这一点,我一直在寻找这方面的例子,但我找不到任何东西,所以我希望这里有人可以帮助我!
最佳答案
是的,在最简单的级别上,您将有一个接受表单提交的 View ,该表单提交获取字段的值并执行类似 User.objects.get(username=my_variable)
的操作并返回结果,如果有的话。您应该将调用包装在 try
/ except
block 中,这样如果不存在具有该用户名的此类用户,您的 View 就不会崩溃。 Django 提供了 shortcut function for doing just this ,因此您可以执行 user = get_object_or_404(User, username=my_variable)
来代替上面的行。你的整个 View 看起来像
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对提交的内容进行一些验证并使其更容易呈现表单。
关于python - 使用标准 django.contrib.auth.models.User 模型在 Sqlite 数据库中查询用户名 "x"的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592227/