How can I get information about the logged-in user in a Django application?
For example:
I need to know the username of the logged-in user to say who posted a Review:
<form id='formulario' method='POST' action=''> <h2>Publica tu tuit, {{ usuario.username.title }} </h2> {% csrf_token %} {{formulario.as_p}} <p><input type='submit' value='Confirmar' /></p> </form>
In usuario.username.title
I get the username, but in the template, I need to get that information from the view.
get_username() will return a string of the users email. request. user. username will return a method.
You can't manually check the password. Because when you are creating a user, django is storing the user's password as a hash value in the database. Now if you are storing the raw password in your custom table which is myuser , it's not a good practice.
Try looking into Flask-Login where you can access the logged in user's attributes via current_user i.e {{ current_user. username }} . Another option would be saving it in Flask's session then {{ session["username"] }} .
You can use the request object to find the logged in user
def my_view(request): username = None if request.user.is_authenticated(): username = request.user.username
According to https://docs.djangoproject.com/en/2.0/releases/1.10/
In version Django 2.0 the syntax has changed to
request.user.is_authenticated
request.user.get_username()
or request.user.username
, former is preferred.
Django docs say:
Since the User model can be swapped out, you should use this method instead of referencing the username attribute directly.
P.S. For templates, use {{ user.get_username }}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With