解决Django 在ForeignKey中出现 non-nullable field错误的问题
在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错误的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
django foreignkey(外键)的实现
foreignkey是一种关联字段,将两张表进行关联的方式,我们在dodels.py里写入要生成的两张表: class Usergroup(models.Model): uid=models.AutoField(primary_key=True) caption=models.CharField(max_length=64,null=True) ctime=models.DateField(auto_now_add=True,null=True) uptime=models.DateField(
-
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
前言 大家使用 Django 创建模型的时候一定会经常使用 ForeignKey 来创建两个表格之间多对一的外键关系,例如B中有一个 models.ForeignKey(A) .而当我们需要反向查询 A 中某个具体实例所关联的 B 时,可能会用到 A.B_set.all() 或 B.objects.filter(A) 这两种不同的方法. 不知道大家有没有也想过一个问题:当网站实际上线后,SEO强调页面加载速度,而当面对不断增大的请求量,这两种方法的哪一种速度更快? 馆主我产生了这个疑问,所以就打
-
Django外键(ForeignKey)操作以及related_name的作用详解
之前已经写过一篇关于Django外键的文章,但是当时并没有介绍如何根据外键对数据的操作,也就是如何通过主表查询子表或者通过子表查询主表的信息 首先我定义了两个模型,一个是老师模型,一个是学生模型,一个老师对应多个学生,这个算是一个一对多的类型(如下图所示) 那么如果我们要想查询一个老师对应的学生有哪些,该如何操作呢? 首先我们先查询到老师的信息,在这里我们使用python shell 进行演示 ,输入命令python manage.py shell 进入python shell操作界面: 第一
-
django foreignkey外键使用的例子 相当于left join
django外键使用 一对一 因为django中处于安全和方便将数据库中的表封装成模型,所以很多sql原生的功能无法使用, 比如 left join,但是我们可以使用外键(foreignkey)来满足表表直接的关系. 设置模型 # 在models.py 中添加 # Person 模型有两个外键, School和Province # class Province(models.Model): name = models.CharField('省份', max_length = 10) post =
-
浅谈django2.0 ForeignKey参数的变化
Django2.0中编写models类下的ForeignKey book = models.ForeignKey('BookInfo') django2.0与之前的1.8不同, 错误: book = models.ForeignKey('BookInfo') ypeError: __init__() missing 1 required positional argument: 'on_delete' 解决方法: book = models.ForeignKey('BookInfo', on_d
-
对django中foreignkey的简单使用详解
公司里很多部门,每个部门可以发多条信息,但每条信息只对应一个部门 部门类: class Dep(models.Model): name = models.CharField('小组名称',primary_key=True, blank=True, null=False, max_length =200) def __str__(self): return self.name 信息类: class Main(models.Model): dep = models.ForeignKey(Dep,ve
-
解决Django 在ForeignKey中出现 non-nullable field错误的问题
在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_t
-
解决django的template中如果无法引用MEDIA_URL问题
配置如下 TEMPLATES = [ 下面 'context_processors': [ 中添加 'django.core.context_processors.media', 会把MEDIA_URL 配置在template中 这样在template下面 就可以引用MEDIA_URL了 补充知识:在django中使用 MEDIA_URL 和 MEDIA_ROOT 在django上传图片前端使用动态的配置方法 MEDIA_ROOT 代表着 要上传的路径会和你在models中写的上传的路径进行拼节
-
解决django 向mysql中写入中文字符出错的问题
之前使用django+mysql建立的一个站点,发现向数据库中写入中文字符时总会报错,尝试了修改settings文件和更改数据表的字符集后仍不起作用.最后发现,在更改mysql的字符集后,需要重建数据库,才能起作用. 这里完整记录一下解决方案 首先更改mysql的字符集 ubuntu下找到/etc/mysql/my.cnf 在最后添加 [mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql]
-
Django 解决model 反向引用中的related_name问题
问题: 定义表Apple: class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel) new_level = models.ForeignKey(AppleLevel) 出现如下问题: monitor.apple: Accessor for field 'origin_level' clashes with related field 'AppleLevel.apple_set'. Add a related
-
解决Django中多条件查询的问题
tags: django中对条件查询 一些cms项目都会使用到多条件查询,我们后端如何处理请求的条件呢? 满足一个条件 满足两个条件 满足多个条件 -------. 这样处理起来会非常的恼火. 其实有多方法比如(传参数,传字典,传Q对象,传F对象-)陷入深深的思考中-怎么用做简单的方法把这个需求解决了. 个人觉得.把我们的查询的所有条件来构建一个字典来查询起来比较高效.具体如何操作见下面的代码: 视图函数. def order_list(request): if request.method =
-
解决django中ModelForm多表单组合的问题
django是python语言快速实现web服务的大杀器,其开发效率可以非常的高!但因为秉承了语言的灵活性,django框架又太灵活,以至于想实现任何功能都有种"条条大路通罗马"的感觉.这么多种选择放在一起,如何分出高下?我想此时的场景下就两个标准: 1.相同的功能用最少的代码实现(代码少BUG也会少): 2.相对最易于理解,从而易于维护和扩展.书归正传,web服务允许用户输入,基本上要靠表单.而django对表单的支持力度非常大,我们用不着在浏览器端的html文件里写大量<fo
-
解决Django中调用keras的模型出现的问题
笔者小白在用Django写一个表格单据图片的识别应用的时候,遇到了调用基于Tensorflow的keras模型出错的问题. 出现的错误信息类似于以下: ValueError: Tensor Tensor("Placeholder:0", shape=(3, 3, 1, 32), dtype=float32) 通过查询相关的资料,对解决的方式做一个记录. 方法1.通过导入 import Keras 然后在构建模型前面加一句 keras.backend.clear_session() 方法
-
解决Django删除migrations文件夹中的文件后出现的异常问题
migrate文件记录了每一次数据迁移的改变 解决方法:重建数据库 1.删除数据库 错误方法: python manage.py shell from app.models import *Product.objects.raw('drop database') 上面删除数据库的方法是错误的 正确方法: 如果是用默认的sqlite数据库:可以直接右键,将db.sqlite3删掉. 如果用的其他数据库,则进入数据库的控制台,将数据库删掉 2.删除migrations中的文件,只保留__init__
-
解决Django中修改js css文件但浏览器无法及时与之改变的问题
今天修改之前实习小伙伴写的js代码的时候,遇到修改后页面未发生变化的问题.因为我是web开发小白,所以上网查了一波,得以解决~~ 初次进行web工程开发的人可能会碰到这样的情况:自己在明明对工程上的某个js或css文件进行了修改,并提交到服务器上去了.但是在客户端浏览器里面打开页面时,并没有看到修改后的效果,而是该js文件的旧版本的效果. 如果了解过浏览器缓存就知道,为了效率,浏览器通常会缓存js/css文件.如果没有清除浏览器缓存的该js文件的话,js的修改效果就不会起作用,因为浏览器还是用的
-
解决django中form表单设置action后无法回到原页面的问题
django中form表单设置action后,点提交按钮是跳转到action页面的,比如设置action为login,网址为192.168.1.128,跳转后便会来到192.168.1.128/login,F5刷新也会是重新提交表单对话框,无法回到原页面. 因此就要在django服务器进行重定向,具体就是 from django.shortcuts import redirect #最后返回原页面 return redirect(url) 补充知识:Django + Ajax发送POST表单,并
随机推荐
- python字符串加密解密的三种方法分享(base64 win32com)
- SpringBoot项目打包三方JAR的示例代码
- Perl Sort函数用法总结和使用实例
- oracle 数据库隔离级别学习
- django 常用orm操作详解
- .NET实现文件跨服务器上传下载的方法
- PHP中的日期加减方法示例
- Linux下从零开始安装配置Nginx服务器+PHP开发环境
- mysql数据库优化需要遵守的原则
- 文本框只能输入数字的js代码(含小数点)
- go语言接口用法实例分析
- JavaScript 变量作用域及闭包第1/2页
- 启动iis出现发生意外0x8ffe2740的解决方法
- php_pdo 预处理语句详解
- Sql Server:多行合并成一行,并做分组统计的两个方法
- js中return false(阻止)的用法
- 基于jquery的表格排序
- RealPlay11 安装过程遭遇CNNIC附清除办法
- 解析如何用两个栈来实现队列的方法
- Android 中添加水平线和垂直线方法总结