2

私は django-facebook を使用して Facebook ユーザーにログインすることに成功しています (たとえば、ログイン後、テンプレート タグ{{ user }}に facebook ユーザー名が表示されます)。ただし、管理インターフェイスには到達しません。その下facebook usersにはデータがまったくありません。

また、SQL テーブルdjango_facebook_facebookcustomuserにはユーザー データが表示されています。

私の推測では、FacebookCustomUserモデルをadmin.pyに登録する必要があったので、これを行いました-

class FacebookCustomUserAdmin(admin.ModelAdmin):
    pass

admin.site.register(models.FacebookCustomUser, FacebookCustomUserAdmin)

# and commented out the user admin inteface -
#admin.site.register(models.FacebookUser, FacebookUserAdmin)

問題は解決しましたが、非常にハックな方法で...さまざまなユーザーを示す「ユーザー」テーブルがありますが、「オープングラフ共有」セクションと「いいね」セクションにはまだデータベースからのデータが入力されていません.

元のコードのように、実際にCustomUserクラス内に何かを渡そうとすると-

 class FacebookCustomUserAdmin(admin.ModelAdmin):
    list_display = ('user_id', 'name', 'facebook_id',)
    search_fields = ('name',)

次の http500 エラーが発生します -

FacebookCustomUserAdmin.list_display[0], 'user_id' is not a callable or an attribute of 'FacebookCustomUserAdmin' or found in the model 'FacebookCustomUser'.

Facebookユーザー(および他のdjango-facebookモデル)を管理サイトに正しく登録する方法について誰かが考えていますか?

どうもありがとう!

4

1 に答える 1

0

2 つのポインター:

  1. UserAdminの代わりに拡張しModelAdminます。
  2. idの代わりに使用しuser_idます。

これを試して:

from django.contrib import admin
from django_facebook import models
from django.contrib.auth.admin import UserAdmin

class AccountAdmin(UserAdmin):
    list_display = ('id', 'username', 'email', 'facebook_id')

admin.site.register(models.FacebookCustomUser, AccountAdmin)

で、settings.pyいいねや友達が確実に保存されるようにするには、次のオプションを追加する必要があります。

FACEBOOK_STORE_LIKES = True
FACEBOOK_STORE_FRIENDS = True
于 2014-04-25T20:57:35.000 に答える