解决Django 在ForeignKey中出现 non-nullable field错误的问题

yipeiwu_com7年前Python基础

在django的model中建立了如下的类

class UserType(models.Model):
 name = models.CharField(max_length=40, verbose_name=u'用户类型')
 ........
 
 def __str__(self):
 return self.name
 
 
class UserProfile(AbstractUser):
 usertype = models.ForeignKey(UserType, related_name='user_type', verbose_name=u'用户类型', on_delete=models.CASCADE)

可是在执行makemigrations时,出现“You are trying to add a non-nullable field ”的错误,提示我ForeignKey必须有一个default值。但是django里面没有要求ForeignKey必须有一个默认值。

问题的原因是原来旧的数据库文件和现在执行的操作有冲突。

解决方法是:把migrations文件夹内除了__init__.py以外的文件删除,重新执行makemigrations就可以了

以上这篇解决Django 在ForeignKey中出现 non-nullable field错误的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解python字节码

Python对不可变序列进行重复拼接操作效率会很低,因为每次都会生成一个新的对象,解释器需要把原来对象中的元素先复制到新的对象里,然后再追加新的元素。 但是CPython对字符串操作进行...

你应该知道的python列表去重方法

前言 列表去重是写Python脚本时常遇问题,因为不管源数据来自哪里,当我们转换成列表的方式时,有可能预期的结果不是我们最终的结果,最常见的就是列表中元素有重复,这时候第一件事我们就要做...

Face++ API实现手势识别系统设计

Face++ API实现手势识别系统设计

        通过普通摄像头拍摄出的照片来进行识别是存在很大的困难的,但是有困难才能找到更好的方法去解决。在百度上...

解决PyCharm中光标变粗的问题

解决PyCharm中光标变粗的问题

pycharm中光标变粗,如下: 原因:光标进入了改写状态。 解决方法:按一下键盘中的Insert键就好了。 以上这篇解决PyCharm中光标变粗的问题就是小编分享给大家的全部内容了,...

Python抽象类的新写法

记得之前learn python一书里面,因为当时没有官方支持,只能通过hack的方式实现抽象方法,具体如下 最简单的写法 class MyCls(): def foo(self...