Estoy tratando de entender un problema que tengo.
Quiero presentar a los usuarios una página en la que puedan buscar un usuario ingresando su nombre de usuario.
Sin embargo, no puedo entender cómo hacer esto. ¿Proporciono una función en mi vista en la que se ejecuta una consulta que recupera un usuario de la base de datos? Por ejemplo, ¿recuperar su nombre de usuario o identificación e ir a su página de perfil? Parece que no puedo entender cómo hacer esto, he estado buscando ejemplos sobre esto, pero no puedo encontrar nada, ¡así que espero que alguien aquí pueda ayudarme!
Sí, en el nivel más simple tendría una vista que acepta el envío de un formulario que toma el valor del campo y hace algo como User.objects.get(username=my_variable) y devuelve los resultados, si los hay. Debe envolver la llamada en un bloque de try / except para que su vista no explote si no existe tal usuario con ese nombre de usuario. Django proporciona una función de acceso directo para hacer precisamente esto , por lo que en lugar de la línea anterior, podría hacer user = get_object_or_404(User, username=my_variable) . Toda su vista se vería algo así como
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}En realidad, también puede crear un formulario de Django para validar los envíos y facilitar la presentación de su formulario.