Только начал изучать Django.
На данный кусок кода, Django выдает ошибку при миграции.
class DescriptionLinks(models.Model):
class Meta:
db_table = "description_link"
name = models.CharField(max_length = 100)
description = models.TextField()
class SpecificLinks(models.Model):
class Meta:
db_table = "specific_link"
link = models.SlugField(max_length = 200)
description = models.ForeignKey(DescriptionLinks)
You are trying to add a non-nullable field 'project' to news without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Select an option:
Нашел похошую проблему и решение, что добавлено обязательное поле description в модели SpecificLinks, но уже существует обьект DescriptionLinks и django не знает, что запихнуть в поле description.
Так же в доке есть пример кода:
def contact_default():
return {"email": "to1@example.com"}
contact_info = JSONField("ContactInfo", default=contact_default)
Вопрос в том, зачем это сделано, ведь в старых версиях, django ссылался на id для внешнего ключа. И как сослаться на id в новых версиях?