/ / Как да получите достъп до потребителски имена и профили с django-allauth - python, django, oauth, django-authentication

Как да получите потребителски имена и потребителски профили с django-allauth - python, django, oauth, django-удостоверяване

Използвам Django с django-allauth за социална идентификация.

Имам автентификация и се изпълнявам, но може ли някой да даде прости примери как:

  • показват името и аватара на регистрирания потребител
  • добавяте информация към потребителския профил?

Например, на началната страница имам

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

Това показва връзката Изход правилно, но как бих добавил името и аватара на потребителя?

Нещо като (псевдокод):

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

След това, ако искам да добавя допълнителни свойства към потребителския профил, какво да правя? Трябва ли да използвам друго приложение, свързано с потребителя на Django?

Благодаря за вашата помощ.

Отговори:

5 за отговор № 1

Ако погледнете в django-allauth източник https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py#L7

Това е абстрактен модел, който представя всички методи, които имат всички други специфични модели на обслужване. Така можете да пишете

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

1 за отговор № 2

А SocialAccount моделът на модела е достъпен за потребители, които са се регистрирали с помощта на социалната си сметка.

В шаблона си можете просто да напишете:

URL адрес на аватар: {{ user.socialaccount_set.all.0.get_avatar_url }}
UID: {{ user.socialaccount_set.all.0.uid }}
Дата на присъединяване: {{ user.socialaccount_set.all.0.date_joined}}
Последно влизане: {{ user.socialaccount_set.all.0.last_login}}

И за Пълно име: {{ user.socialaccount_set.all.0.extra_data.name }}

За повече информация: Източник на Django allauth


-1 за отговор № 3

можете да направите за цикъл в набор от Socialaccount в рамките на класа на Foreignkey към потребителския клас, в шаблона е нещо като:

{% 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 %}