Controlla l'utente che ha effettuato l'accesso in Django

Vaibhav Vaibhav 10 agosto 2021
  1. Controlla l’utente che ha effettuato l’accesso in Views in Django
  2. Controlla l’utente che ha effettuato l’accesso nei modelli in Django
Controlla l'utente che ha effettuato l'accesso in Django

Django viene fornito con un robusto sistema di autenticazione. Quindi, controllare l’attuale utente connesso in Django è piuttosto semplice. Ma dipende da dove desideri controllare l’utente che ha effettuato l’accesso, ovvero nelle viste o nei modelli.

In questo articolo, discuteremo come controllare l’utente che ha effettuato l’accesso per entrambe le posizioni.

Controlla l’utente che ha effettuato l’accesso in Views in Django

Nelle visualizzazioni, possiamo utilizzare la request per controllare l’utente che ha effettuato l’accesso. Una request ha una serie di informazioni come la macchina client, l’IP del client, il tipo e i dati della richiesta, ecc., e una di queste informazioni riguarda l’utente che sta effettuando questa richiesta.

Fare riferimento al codice seguente

if request.user.is_authenticated:
    print("User is logged in :)")
    print(f"Username --> {request.user.username}")
else:
    print("User is not logged in :(")

Possiamo usare request.user.is_authenticated per verificare se l’utente ha effettuato l’accesso o meno. Se l’utente ha effettuato l’accesso, restituirà True. In caso contrario, restituirà False.

Controlla l’utente che ha effettuato l’accesso nei modelli in Django

Come nelle viste, possiamo anche utilizzare la request all’interno dei modelli per verificare l’utente che ha effettuato l’accesso. La sintassi è esattamente la stessa. Nei modelli, utilizzeremo i tag dei modelli di Django per creare una dichiarazione if-else.

<body>
    {% if request.user.is_authenticated %}
        <p>User is logged in :)</p>
        <p>Username -->  {{ request.user.username }}</p>
    {% else %}
        <p>User is not logged in :(</p>
    {% endif %}
</body>
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Articolo correlato - Django User