Cómo acceder a los nombres de usuario y perfiles con django-allauth

Estoy usando Django con django-allauth para la autenticación social.

Tengo la autenticación en funcionamiento, pero alguien puede dar ejemplos simples de cómo:

  • mostrar el nombre y el avatar de un usuario registrado
  • ¿Agregar información a la cuenta de un usuario?

Por ejemplo, en la página de inicio, tengo

{% if user.is_authenticated %} 
  • Logout
  • {% endif %}

    Eso muestra el enlace de cierre de sesión correctamente, pero ¿cómo puedo agregar el nombre del usuario y el avatar?

    Algo como (pseudocódigo):

     

    You're logged in with {{ user.account_provider? }} as {{ user }}.

    Luego, si quiero agregar propiedades adicionales al perfil del usuario, ¿qué hago? ¿Debo usar alguna otra aplicación relacionada con el usuario de Django?

    Gracias por tu ayuda.

    Si nos fijamos en la fuente django-allauth https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py#L7

    Este es un modelo abstracto que representa todos los métodos que tienen todos los demás modelos de servicios específicos. Asi podrias escribir

     

    You're logged in with {{ user.get_provider }} as {{ user }}.

    Hay SocialAccount instancia del modelo SocialAccount disponible para los usuarios que se registraron con su cuenta social.

    En su plantilla, simplemente puede escribir:

    URL de Avatar: {{ user.socialaccount_set.all.0.get_avatar_url }}
    UID: {{ user.socialaccount_set.all.0.uid }}
    Fecha de {{ user.socialaccount_set.all.0.date_joined}} : {{ user.socialaccount_set.all.0.date_joined}}
    Último inicio de sesión: {{ user.socialaccount_set.all.0.last_login}}

    Y para el nombre completo: {{ user.socialaccount_set.all.0.extra_data.name }}

    Para más información: Django allauth source.

    puede hacer un bucle en el conjunto de cuentas sociales dentro de foreignkey a clase de usuario, en la plantilla es algo como a continuación:

     {% for account in user.socialaccount_set.all %} {% comment %} show avatar from url {% endcomment %} 

    {{ account.provider }} account data

    UID: {{ account.uid }}

    Username: {{ account.extra_data.username }}

    First Name: {{ account.extra_data.first_name }}

    Last Name: {{ account.extra_data.last_name }}

    Dashboard Link: https://stackoverflow.com/questions/8477530/how-to-access-user-names-and-profiles-with-django-allauth/{{ account.extra_data.link }}

    {% empty %}

    you haven't any social account please

    {% endfor %}