Как получить доступ к именам пользователей и профилям с помощью django-allauth - PullRequest
8 голосов
/ 12 декабря 2011

Я использую 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="{{ user.avatar_url }}" />

Затем, если я хочу добавить дополнительныесвойства к профилю пользователя, что мне делать?Должен ли я использовать какое-либо другое пользовательское приложение Django?

Спасибо за вашу помощь.

Ответы [ 3 ]

5 голосов
/ 12 декабря 2011

Если вы посмотрите на источник Джанго-Аллаута 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="{{ user.get_avatar_url }}" />
3 голосов
/ 23 августа 2015

Экземпляр модели 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 }}

Для получения дополнительной информации: Источник Джанго Аллаута

0 голосов
/ 14 октября 2015

Вы можете сделать цикл for в наборе 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="{{ 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 %}
...