2016-09-27 15 views
1

this answerによると、管理領域でユーザーパスワードを変更する機能を有効にするには、UserChangeFormにコードを追加/変更する必要があります。Django管理領域でパスワード変更を有効にする場合、UserChangeFormを継承して上書きする場所はありますか?

これは元のUserChangeFormの変更を意味するものではなく、UserChangeFormメソッドを含むクラスを継承し、そのメソッドをオーバーライドする必要があることを理解しています。

私はこれを行う場所を理解していません。誰かが私にUserChangeFormをオーバーライドする場所/方法の例を教えてください。 AbstractBaseUserを継承するカスタムユーザーモデルを使用していると仮定します。

これはUserChangeFormに行くべきパスワードを変更するための(上記のリンクの回答から)コードです:私はこれが実際に正しいパスワードを変更します正しいフォームを表示すると仮定しています

password = ReadOnlyPasswordHashField(label= ("Password"), 
     help_text= ("Raw passwords are not stored, so there is no way to see " 
        "this user's password, but you can change the password " 
        "using <a href=\"password/\">this form</a>.")) 

ますが、私はそのことについて素朴である可能性があります。

ありがとうございます。

答えて

0

ユーザーのアプリケーションを追加し、djangoの認証ユーザーから継承します。私のコードを参照してください: これはあなたのmodels.py、このタスクのための任意のフォームを変更する必要はありません

from django.contrib.auth.models import User 
    class UserProfile(models.Model): 
     user = models.OneToOneField(User) 
     # other fields 
     email = models.EmailField(_('email address'), blank=False, null=False, 
      unique=True) 
     weight = models.IntegerField(default=0, 
      validators=[ 
       MaxValueValidator(9), 
       MinValueValidator(0) 
      ]) 
+0

お返事ありがとうございます。私はそれについて少し混乱している。これにより、カスタムユーザーモデルの管理領域でパスワードを変更する機能が有効になりますか? –

+0

私はあなたの顧客モデルを知らない。 –

+0

私のユーザモデルであなたのコードを使ってみましたが、何もしませんでした。とにかく試してくれてありがとう。 –

関連する問題