2

作業中のアプリケーションに django-facebook をインストールしましたが、多くの問題が発生しています。ここでdjango-facebookのインストールをたどりましたが、適切に実装できませんでした。

facebook/example で facebook に接続しようとすると、ユーザーに facebook 資格情報の入力を求めるプロンプトが表示されますが、次のエラーが発生するため、次のページにリダイレクトできません:

ユーザーまたはプロファイルに属性 facebook_id がありませんでした

manage.py syncdb を実行しましたが、facebook/example で facebook に接続した後、facebook の属性は DB で「null」のままです。

ドキュメントのように、コードに以下を追加しました。

アカウント/model.py

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django_facebook.models import FacebookProfileModel

class User_info(FacebookProfileModel):
    user_id = models.ForeignKey(User)
    dob = models.DateField(blank=True, null=True)
    contact = models.IntegerField(max_length=20, blank=True, null=True)
    avatar = models.ImageField(upload_to='user_images', default='user_images/root.jpeg', null=True, blank=True)

def create_facebook_profile(sender, instance, created, **kwargs):
    if created:
        User_info.objects.create(user_id=instance)

post_save.connect(create_facebook_profile, sender=User)

設定.py

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'account',
'django_facebook',
)

TEMPLATE_CONTEXT_PROCESSORS =(
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.core.context_processors.tz',
'django.core.context_processors.request',
'django_facebook.context_processors.facebook',
)

AUTHENTICATION_BACKENDS = (
'django_facebook.auth_backends.FacebookBackend',
'django.contrib.auth.backends.ModelBackend',)

FACEBOOK_APP_ID = 'xxxxxxxxxxxxx'
FACEBOOK_APP_SECRET = 'xxxxxxxxxxxxxx'

urls.py

urlpatterns = patterns('',
url(r'^accounts/login/$',  login, {'template_name': 'login.html'}),
url(r'^accounts/logout/$', logout, {'next_page': '/accounts/login/'}, name='auth_logout',),
url(r'^accounts/signup/$', account.views.register, name='signup'),
url(r'^facebook/', include('django_facebook.urls')),
)

これについて私を助けてください。ありがとう。

4

1 に答える 1

1

settings.py で AUTH_PROFILE_MODULE を指定しましたか? 入れてみてください:

   AUTH_PROFILE_MODULE = "yourApp.User_info"

次に、syncdb を実行して Facebook アカウントを作成します。それはトリックを行う必要があります。

于 2013-07-23T21:38:14.740 に答える