¿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?
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 objetorequest.user
.Aquí hay un fragmento de código actualizado que debería funcionar:
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 deMembers
.