我正在通过一些教程学习django,目前在effective-django教程中拥有所有权。不幸的是,这些教程是为旧版本的django编写的,所以有些东西稍有不同。django:不可空字段的默认值
我在models.py添加一个“所有者”字段时,我的模型跟遇到了问题:
from django.db import models
from django.core.urlresolvers import reverse
from django.contrib.auth.models import User
class Contact(models.Model):
"""
Interface for contact class
"""
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
email = models.EmailField()
owner = models.ForeignKey(User)
def __str__(self):
return ' '.join([self.first_name, self.last_name])
def get_absolute_url(self):
return reverse('contacts-view', kwargs={'pk': self.id})
当试图运行“makemigrations”,我得到警告:
您尝试添加不可为空场“所有者”没有默认联系:不能这样做
这使得现有数据库的意义,所以我尝试冲洗ŧ他数据库。但是,问题依然存在。现场所有者的默认值是什么?我也尝试让字段为空,但是这给了我字段所有者不能为空的错误。
添加这确实解决了这个问题,这确实对后来添加的联系人是否有影响? – nluigi
不,新添加的联系人不会有该字段的任何默认值。此值将仅设置为迁移时数据库中存在的记录。 – catavaran