編集ここで質問を再定式化しました
django.contrib.auth.models.User
次の機能を備えた、 を拡張するカスタム ユーザー モデルをいくつか作成したいと考えています。
いくつかの特定のフィールド
つまり、モデルごとに、簡単にカスタマイズできる管理フォームです (たとえば、親
django.contrib.auth.models.User
モデルと子モデルの両方からいくつかのフィールドを表示/非表示にします)。
以下のコードでほとんどできましたが、まだ問題があります。管理者から MyUser1 または MyUser2 のインスタンスを変更するたびに、パスワードがクリアされます。
それはそれを行うための最良の方法ですか?もしそうなら、どうすればこのクリアされたパスワードの問題を解決できますか?
models.py
from django.db import models
from django.contrib.auth.models import User
class MyUser1(User):
#add more fields specific to MyUser1
class MyUser2(User):
#add more fields specific to MyUser2
admin.py
class MyUser1AdminForm(forms.ModelForm):
class Meta:
model = MyUser1
def __init__(self, *args, **kwargs):
super(MyUser1AdminForm, self).__init__(*args, **kwargs)
self.fields['password'].widget = forms.PasswordInput()
def save(self, commit=True):
user = super(MyUser1AdminForm, self).save(commit=False)
user.set_password(self.cleaned_data["password"])
if commit:
user.save()
return user
class MyUser1Admin(admin.ModelAdmin):
form = MyUser1AdminForm
admin.site.register(MyUser1, MyUser1Admin)
# same for MyUser2