2009-01-09 45 views
1

我正在編寫一個Django應用程序,並且我希望在本地創建帳戶時使用Provisioning API在我們的Google Apps託管電子郵件上創建一個帳戶。將Django用戶與Google Apps同步而無需monkeypatching

我會單獨使用的信號,但因爲我想密碼跨站點同步,我一直在使用的包裝創建谷歌帳戶,並分別更新密碼monkeypatched User.objects.create_userUser.set_password

Monkeypatching似乎被折磨,所以我想知道,有沒有更好的方法來實現這一目標?

回答

1

您是否考慮過繼承用戶模型?這可能會產生一系列不同的問題,並且只適用於較新的版本(不知道更改何時進入,我在主幹上)。

0

子類化似乎是最好的路線,只要你可以改變你的所有代碼來使用新類。我認爲這在最新版本的Django中得到了支持。

0

Monkeypatching絕對不好。由於您提供的代碼/信息太少,所以很難說出任何內容。但是我認爲你在某些時候(在視圖中,在表單中)有明文形式的密碼,那麼爲什麼不手動同步呢?

0

我用Django 1.0.2的子類用戶。你基本上做了另一個鏈接到user_id的表。

class User(MyBaseModel): 
    user = models.OneToOneField(User, help_text="The django created User object") 

,然後在運行時

@login_required 
def add(request) : 
    u = request.user.get_profile() 

然後,您可以很容易地覆蓋所需的方法。

對於那些還沒有聽說過monkeypatching:http://en.wikipedia.org/wiki/Monkey_patch。這是從游擊隊補丁派生。

相關問題