2
私のmodels.py
では、email_listを追加してDjango Userモデルを拡張したいと考えています。Djangoモデルsave() - AttributeError: 'NoneType'オブジェクトに 'append'属性がありません
from django.contrib.postgres.fields import ArrayField
class User(AbstractUser):
email_list = ArrayField(models.EmailField(max_length=100), null=True, blank=True)
[...]
このemail_listは、デフォルト値として、ユーザーの電子メールを持っている必要があります。
AttributeError: 'NoneType' object has no attribute 'append'
そしてprint(type(self.email_list))
は、<type 'NoneType'>
を返します。私は、私は次のエラーを取得するユーザーを追加するときに、しかし
def save(self, *args, **kwargs):
self.email_list.append(self.email)
super(User, self).save(*args, **kwargs)
:私はこれを行うための最善の方法は、save()
メソッドをオーバーライドすることであることがわかりました
ArrayField
の何か問題がありますか?
'[]'、現在あなたが 'その初期値としてNONE'を持っているにdefaultをフィールドkwargを設定してください。 – bakatrouble
@backatroubleあなたは '[]'ではなく 'list'を使うべきです。 [警告](https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/fields/#django.contrib.postgres.fields.ArrayField)を参照してください。 – Alasdair