Я пытался добавить в мою модель TrainingSubject новый столбец с именем «email» и связать его значение с другой моделью (Training) с помощью внешнего ключа, а затем отобразить все это на внешнем интерфейсе (задняя часть - django, передняя часть - реакция.
Я добавил эту строку в TrainingSubject модель:
email = models.CharField(_('Email assigned'), max_length=100, default='', blank=True)
, а эту - в Training модель:
email_to = models.ForeignKey(TrainingSubject, related_name='manager_email', default='', blank=True)
так что все это выглядит следующим образом:
class TrainingSubject(models.Model):
"""TrainingSubject model for storing subjects."""
name = models.CharField(_('name'), max_length=160, unique=True)
email = models.CharField(_('Email assigned'), max_length=100, default='', blank=True)
def __str__(self):
return self.name
class Meta:
verbose_name = _('Training subject')
verbose_name_plural = _('Training subjects')
class Training(models.Model):
"""Training model for storing trainings."""
subject = models.ForeignKey(TrainingSubject, verbose_name=_('subject'),
related_name='trainings')
email_to = models.ForeignKey(TrainingSubject, related_name='manager_email', default='', blank=True)
date = models.DateTimeField(_('date'))
timezone = models.CharField(
Миграция не может быть применена, я получаю эту ошибку каждый раз, когда начинаю создавать эти вещи.
Running migrations:
Rendering model states... DONE
Applying sonel_core.0089_training_email_to...Traceback (most recent call last):
File "/home/vagrant/.pyenv/versions/cms/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
psycopg2.IntegrityError: column "email_to_id" contains null values
Ранее япопытался добавить все это только за один шаг, теперь я разбил его на два этапа: 1. добавьте email в TrainingSubject (который отлично работает) и 2. добавьте email_to вМодель обучения и возможность наконец-то отобразить это электронное письмо на внешнем интерфейсе.
Что я делаю не так?