es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Podemos usar el filtro de Django con una variable?

Aquí están mis códigos:

Models.py

class Members(models.Model):
      first_name = models.CharField(max_length=100)
      last_name = models.CharField(max_length=100) 
      username = models.CharField(max_length=100)
      email = models.EmailField()
      phone = models.CharField(max_length=14)

Views.py (no retorna ningún valor)

def employeeView(request):
    member = User.username
    members = Members.objects.filter(username= member)
    return render(request,'members/user_profile.html', {'members': members})

Views.py (retorna correctamente)

def employeeView(request):
    members = Members.objects.filter(username= 'mahesh')
    return render(request,'members/user_profile.html', {'members': members})

Estoy tratando de obtener los datos filtrando los objetos Members pasando el nombre de usuario del usuario conectado. Funciona cuando se codifica, pero no al pasar una variable ¿Hay alguna solución alternativa?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una solución alternativa. En el primer fragmento de código, parece que estás tratando de acceder al nombre de usuario del usuario conectado usando User.username, lo cual no está definido en ninguna parte del código. Puedes intentar acceder al nombre de usuario del usuario conectado a través del objeto request.user.

    Aquí hay un fragmento de código actualizado que debería funcionar:

    def employeeView(request):
        username = request.user.username
        members = Members.objects.filter(username=username)
        return render(request, 'members/user_profile.html', {'members': members})
    

    Al acceder a request.user.username, deberías poder obtener el nombre de usuario del usuario que ha iniciado sesión y usarlo para filtrar el queryset de Members.

Comments are closed.