sha*_*ank 15 python django django-models python-2.7
我只是使用简单的命令python manage.py makemigrations
但是,我得到的只是这个错误:
You are trying to add a non-nullable field 'id' to contact_info 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
Run Code Online (Sandbox Code Playgroud)
这是models.py:
class Document(models.Model):
docfile = models.FileField(upload_to='documents/')
class contact_number(models.Model):
contact_numbers= models.CharField(max_length=13)
class contact_address(models.Model):
address = models.CharField(max_length=100)
city = models.CharField(max_length=50)
state = models.CharField(max_length=50)
zip = models.CharField(max_length=5)
class contact_info(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
contact_numbers=models.ManyToManyField(contact_number)
addresses=models.ManyToManyField(contact_address)
Run Code Online (Sandbox Code Playgroud)
meh*_*met 27
当一个不同的字段被标记为primary_key=True早期的主键并且您正在删除它(在django尝试添加id主键的情况下)时会发生这种情况.
django要求主键的默认值似乎是一个错误.
若要解决此问题,请按照下列步骤操作:
1)在makemigrations期间提示时提供随机默认值.
2)转到生成的迁移文件(在下面your_app\migrations\并删除default=x,,x是您在步骤1中提供的随机值
3)当您处于迁移文件时,请确保操作顺序有意义(例如,在添加另一个主键之前删除/更改一个主键).保存并关闭.
4)像往常一样迁移.
pyc*_*333 13
您可以设置`default =“,也可以设置editable = False。
例如first_name = models.CharField(max_length=50, default="", editable=False)。
无需添加ID字段。Django将自动添加它。
编辑:删除您的迁移文件夹中的最后一个迁移文件,然后重试。如果它不起作用,请重复相同的过程,当您的“ makemigrations”命令起作用时,您将知道已删除了正确的文件。
| 归档时间: |
|
| 查看次数: |
32955 次 |
| 最近记录: |