Добрый вечер. Предположим, хочу расширить модель пользователя (так легче будет объяснить) вариантом OneToOneField
Возьму код из
хабра:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(max_length=500, blank=True)
location = models.CharField(max_length=30, blank=True)
birth_date = models.DateField(null=True, blank=True)
Если мы создадим пользователя, например, в админке и обратимся к
user.profile.bio
, то будет ошибка, что строки в БД нет и таких данных тоже. На хабре рассказывают о сигналах в джанго, которые при добавлении/обновления юзера создают/обновляют строку в таблице Profile. Вариант не плохой, но что будет, если до создания модели Profile было добавлено уже несколько тысяч пользователей? У них снова же не будет этих строк в таблице Profile и строки будут создаваться только для новых пользователей.
Вопрос. Как лучше пользоваться расширением моделей посредством OneToOneField, чтобы не натыкаться на исключения, когда нет связанных строк в БД? Или может лучше как-то по-умолчанию добавлять строки в бд со значениями по умолчанию?