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ď č. 1Ak 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 %}