Невозможно добавить ненулевое поле 'profile' в пост без указания значения по умолчанию. Это происходит потому, что БД нужно что-то заполнить в существующих строках.
я создал модель post, в которую не добавил внешний ключ 'PROFILE'.
class Post(models.Model):
profile = models.ForeignKey(profile, on_delete=models.CASCADE)
id = models.UUIDField(primary_key=True, default=uuid.uuid4)
user = models.ForeignKey(User, on_delete=models.CASCADE)
caption = models.CharField(max_length=250, blank=True, null=True)
image = models.ImageField(upload_to="post_images", blank=True, null=True)
created = models.DateTimeField(default=datetime.now())
no_of_likes = models.IntegerField(default=0)
потом я добавил его & запустил makemigrations, он вернул мне сообщение о том, что мне нужно указать значение по умолчанию. по ошибке я добавил id номер этой модели профиля в качестве значения по умолчанию. затем каждый раз, когда я делаю миграцию, он возвращается IntegrityError: Строка в таблице 'App_post' с первичным ключом '6b6b280dbce848acb9fbbec677d01b1' имеет недопустимый внешний ключ: App_post.profile_id содержит значение '1', которое не имеет соответствующего значения в App_profile.id.
теперь даже после того, как я полностью удалил строку профиля из модели поста, он все еще возвращает мне это при миграции. как мне это исправить? Я хочу изменить значение по умолчанию, но он возвращает сообщение App_post. profile_id содержит значение '1', которое не имеет соответствующего значения в App_profile.id я удалил 1 из defult, я удалил весь ряд, но он не меняется. мне пришлось однажды перевернуть весь проект по этой причине, пожалуйста, помогите!!!
Перейдите к миграциям, отредактируйте файл миграции, в который вы сделали миграцию профиля, и вы увидите
operations = [
migrations.AddField(
model_name='post',
name='profile ',
field=models.ForeignKey(default=1), #your field
preserve_default=False,
),
]
просто закомментируйте это и затем запустите migrate. после комментирования он должен выглядеть примерно так:
operations = [
# migrations.AddField(
# model_name='post',
# name='profile ',
# field=models.ForeignKey(default=1),
# preserve_default=False,
# ),
]