2016-10-28 4 views
0

AbstractUserでdjangoの組み込みユーザモデルを拡張しました。しかし、展開に移り、スーパーユーザーを作成するときには、拡張モデルの追加フィールドの一部にヌルエントリがあるために失敗しました。これらのフィールドは、スーパーユーザーには必要ないが、通常のユーザーには必要です。 (私は、これは典型的なユースケースで想定し - 私はアドレスを記入して管理者を必要としないよう、口座番号等...)スーパーユーザ用の拡張ユーザモデルフィールドを必要としない方法

models.py

class User(AbstractUser): 
    title = models.CharField(max_length=255, null=True) 
    date_of_birth = models.DateField() 
    phone_number = models.IntegerField(null=True) 

    account_name = models.CharField(max_length=255) 
    account_number = models.IntegerField() 


    house_name_number = models.CharField(max_length=255, verbose_name="house name or number") 
    street_name = models.CharField(max_length=255) 
    town_city = models.CharField(max_length=255) 
    county = models.CharField(max_length=255) 
    postcode = models.CharField(max_length=8) 

答えて

1

代わりで必須フィールドを使用しますモデルでは、null=True, blank=Trueを使用してオプションに設定し、formsで検証を行わなければなりません。 For users other than admin create a form that checks for extra fields andvalidatethose fields。登録/登録時にこのフォームをテンプレートでレンダリングしてください。また、モデルフォームuse forms.Formを使用する代わりに、これにより、より高度なカスタマイズが可能になります。これにより、Admin以外のすべてのユーザーに必須の追加フィールドが作成されます。

関連する問題