/ / Ako získať prístup k užívateľským menom a profilom pomocou django-allauth - python, django, oauth, django-authentication

Ako pristupovať k užívateľským menám a profilom pomocou django-allauth - python, django, oauth, django-authentication

Používam Django s django-alauthom na sociálne overenie.

Mám overenie a beží, ale ktokoľvek môže uviesť jednoduché príklady, ako:

  • zobraziť meno a avatar prihláseného používateľa
  • pridať nejaké informácie do používateľského účtu?

Napríklad na domovskej stránke mám

{% if user.is_authenticated %}
<li><a href="{% url account_logout %}?next=/">Logout</a></li>
{% endif %}

To ukazuje správne odhlásenie, ale ako by som pridal meno používateľa a avatar?

Niečo ako (pseudokód):

<p>You"re logged in with {{ user.account_provider? }} as {{ user }}.</p>
<img src="/images/{{ user.avatar_url }}" />

Potom, ak chcem do profilu používateľa pridať ďalšie vlastnosti, čo mám robiť? Mal by som používať inú aplikáciu pre používateľa Django?

Vďaka za vašu pomoc.

odpovede:

5 pre odpoveď č. 1

Ak sa pozriete na zdroj django-alauth https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py#L7

Toto je abstraktný model, ktorý predstavuje všetky metódy, ktoré majú všetky ostatné špecifické modely služieb. Tak ste mohli písať

<p>You"re logged in with {{ user.get_provider }} as {{ user }}.</p>
<img src="/images/{{ user.get_avatar_url }}" />

1 pre odpoveď č. 2

A SocialAccount inštancia modelu je k dispozícii pre používateľov, ktorí sa zaregistrovali pomocou svojho sociálneho účtu.

Vo svojej šablóne môžete jednoducho napísať:

Adresa URL avataru: {{ user.socialaccount_set.all.0.get_avatar_url }}
UID: {{ user.socialaccount_set.all.0.uid }}
Dátum pripojenia: {{ user.socialaccount_set.all.0.date_joined}}
Posledné prihlásenie: {{ user.socialaccount_set.all.0.last_login}}

A pre Celé meno: {{ user.socialaccount_set.all.0.extra_data.name }}

Pre viac informácií: Zdroj Django allauth


-1 pre odpoveď č. 3

môžete vytvoriť slučku v skupine socialaccount v cudzom jazyku na triedu užívateľa, v šablóne je to niečo ako nižšie:

{% for account in user.socialaccount_set.all %}

{% comment %} show avatar from url {% endcomment %}
<h2 style="text-transform:capitalize;">{{ account.provider }} account data</h2>

<p><img width="50" height="50" src="/images/{{ account.get_avatar_url }}"/></p>

<p>UID: <a href="{{ account.extra_data.link }}">{{ account.uid }}</a></p>

<p>Username: {{ account.extra_data.username }}</p>

<p>First Name: {{ account.extra_data.first_name }}</p>

<p>Last Name: {{ account.extra_data.last_name }}</p>

<p>Dashboard Link:
<a href="{{ account.extra_data.link }}">{{ account.extra_data.link }}</a></p>
{% empty %}
<p>you haven"t any social account please</p>
{% endfor %}