首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个模型获取列的外键- Django

从另一个模型获取列的外键- Django
EN

Stack Overflow用户
提问于 2018-05-18 12:34:17
回答 1查看 1.5K关注 0票数 0

我一直试图在我的TrainingSubject模型中添加一个名为"email“的新列,并通过外键将其值链接到另一个模型(培训),然后将其显示在前端(后台是django,前端是react )。

我在TrainingSubject模型中添加了这一行:

代码语言:javascript
复制
email = models.CharField(_('Email assigned'), max_length=100, default='', blank=True)

而这个到训练模型:

代码语言:javascript
复制
email_to = models.ForeignKey(TrainingSubject, related_name='manager_email', default='', blank=True)  

因此,全文如下:

代码语言:javascript
复制
    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(

迁移无法应用,每当我开始创建这些东西时,我都会得到这个错误。

代码语言:javascript
复制
        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添加到培训模型中,最终能够在前端显示这封电子邮件。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-18 12:45:18

定义要接受空值的字段,因为表已经有了一些数据,当添加新的FK字段时,必须给出null或一个有效值。

代码语言:javascript
复制
email_to = models.ForeignKey(TrainingSubject, related_name='manager_email', default='', blank=True, null=True)  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50411453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档