Не могу найти кнопку facebook, используя django-socialauth - PullRequest
0 голосов
/ 08 декабря 2010

Я хочу войти через Twitter, Facebook, OpenID, Yahoo, Google, используя одно приложение.

, поэтому я выбираю django-socialauth

Я читал эту статью: djangosocialauth-login-via-twitter-facebook-openid-yahoo-google /

но когда я загружаю код и запускаю его, я не могу найти кнопку facebook,

чтомогу я сделать?

спасибо

это мое демо-изображение:

alt text

и это демо автора: здесь

alt text

1 Ответ

0 голосов
/ 23 декабря 2010

Так что мне пришлось немного подправить код их представления, чтобы заставить это работать. Посмотрев в socialauth.views , вы увидите, что мы получаем атрибут FACEBOOK_APP_ID из нашего файла настроек. Это хорошо.

Глядя на шаблон socialauth / login_page.html , есть раздел:

{% if FACEBOOK_APP_ID %}
  <div id="facebook">
    <p><fb:login-button perms="{{ login_button_perms }}"></fb:login-button></p>
  </div>      
{% endif %}

Теперь это похоже на доступ к переменной FACEBOOK_APP_ID. Конечно, мы получаем этот атрибут в socialauth.views . Однако у нас есть одна проблема. Мы никогда не выставляем переменную в шаблоне (что должно быть сделано вручную, помните?). Итак, мы заменим старое представление страницы входа в систему:

def login_page(request):
  return render_to_response('socialauth/login_page.html', 
                          {'next': request.GET.get('next', LOGIN_REDIRECT_URL)}, 
                          context_instance=RequestContext(request))

с:

def login_page(request):
  return render_to_response('socialauth/login_page.html', {
    'next': request.GET.get('next', LOGIN_REDIRECT_URL),
    'FACEBOOK_APP_ID': FACEBOOK_APP_ID,
  },
  context_instance=RequestContext(request))

Обратите внимание, что единственная разница заключается в строке 'FACEBOOK_APP_ID': FACEBOOK_APP_ID.

...