2013-06-22 18 views
2

我跟着教程和https://github.com/tschellenbach/Django-facebook/tree/master/facebook_exampleDjango的Facebook的內部代碼說,它不能找到facebook_id

我知道了啓動和運行(在我已經運行執行syncdb Django的Facebook的例子和遷移,並將javascript和css代碼集成到我的模板中)。

當我點擊我的模板中的鏈接,它成功連接到Facebook,我可以授權。然而,當它重定向,我得到一個錯誤:

Request Method: POST 
Request URL: http://127.0.0.1:8000/facebook/connect/?facebook_login=1 
Django Version: 1.5.1 
Exception Type: AttributeError 
Exception Value: user or profile didnt have attribute facebook_id 
Exception Location: /usr/local/lib/python2.7/dist-packages/django_facebook/utils.py in get_user_attribute, line 109 
Python Executable: /usr/bin/python 
Python Version: 2.7.3 

這是Django的Facebook的代碼中,我不知道如果我做錯了什麼與我的設置。我創建它擴展了抽象類FacebookProfileModel(我一直在使用FacebookModel也試過)我自己的用戶配置模式:

from django_facebook.models import FacebookProfileModel 
from django.db.models.signals import post_save 

class UserProfile(FacebookProfileModel): 
    user = models.OneToOneField('auth.User') 

def create_profile(sender, instance, created, **kwargs): 
    if created: 
     UserProfile.objects.create(user=instance) 

post_save.connect(create_profile, sender=User) 

我可以看到曲線獲得在DB創建的,但它的所有空值(除在外鍵中使用的用戶ID)。不知道我做錯了什麼,任何指針?

+0

檢查您的FacebookProfileModel數據庫模型是否正確創建。 (如果你在運行syncdb後添加了這個模型,你是否需要運行一個南遷移?) – karthikr

回答

1

我發現出了什麼問題,並且希望將解決方案發回。問題在於我沒有在settings.py中指定AUTH_PROFILE_MODULE。在django-facebook文檔中,它沒有提到當它提供擴展配置文件類的選項時,所以我錯過了它。愚蠢的錯誤!

+0

請問你是否可以告訴你在settings.py中添加了什麼,因爲我有相同的問題 –

+0

是的,對不起。在我的設置應用程序,我所做的: AUTH_PROFILE_MODULE =「appName.UserProfile」 在那裏你會不管你叫應django_facebook您的應用程序和配置文件類 –

+0

應用程序的名稱或在用戶配置模型存在的應用程序替換應用程序的名字和用戶配置? –