Вы пытаетесь изменить nullable поле 'email' на customuser на non-nullable без значения по умолчанию.
У меня есть две модели (UserAddress и CustomUser) в моем models.py, поле user address в CustomUser было полем многие-ко-многим, но я решил изменить его на поле внешнего ключа. Но когда я запустил python manage.py make migrations, он попросил меня выбрать вариант:
что мне делать: Вы пытаетесь изменить nullable поле 'email' в customuser на non-nullable без значения по умолчанию; мы не можем этого сделать (базе данных нужно что-то для заполнения существующих строк). существующие строки). Пожалуйста, выберите исправление:
- Provide a one-off default now (will be set on all existing rows with a null value for this column)
- Ignore for now, and let me handle existing rows with NULL myself (e.g. because you added a RunPython or RunSQL operation to handle NULL values in a previous dat a migration)
- Quit, and let me add a default in models.py
Вот мой файл models.py:
class UserAddress(models.Model):
city = models.CharField(max_length=100)
address = models.CharField(max_length=200)
zip_code = models.CharField(max_length=15, blank=True)
def __str__(self):
return str(self.id)
class CustomUser(AbstractUser):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField(unique=True)
user_address = models.ForeignKey(UserAddress, on_delete=models.CASCADE)
class CustomUser(AbstractUser):
email = models.EmailField(unique=True ,null =True)
# your other fields
Выполните команду python manage.py makemigrations
и python manage.py migrate
. Ошибка будет удалена.