2017-07-10 51 views
1

我使用Django管理界面能夠輕鬆修改我擁有的現有MySQL數據庫中的條目。我的一個表中包含一個密碼列,其中包含用戶的哈希密碼。現在,當我使用管理面板創建新用戶時,必須從外部計算密碼哈希值,然後將其粘貼到管理面板中。無論如何,我可以提供某種「預插入鉤子」,以便我可以直接輸入密碼,鉤子計算出散列並將其傳遞給管理面板以進行保存?在使用管理面板插入模型字段之前預處理模型字段

回答

1

您可以override the admin form,使用像AdminPasswordChangeForm其確認新密碼匹配形式,然後在其save方法設置相應的密碼:

def save(self, commit=True): 
    password = self.cleaned_data["password1"] 
    self.user.set_password(password) 
    if commit: 
     self.user.save() 
    return self.user 

您也可以覆蓋保存方法上的用戶,但這更像是一種大錘的方法。

相關問題