首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django模型的属性由表单正确保存,但在查询时返回None类型

可能是由于以下几个原因导致的:

  1. 数据库中没有该属性的值:在保存表单数据时,可能没有正确地将属性的值保存到数据库中。可以通过检查数据库中的相关记录,确保属性的值已经正确保存。
  2. 查询条件不正确:在查询时,可能没有正确地设置查询条件,导致返回的结果中该属性的值为None。可以检查查询语句,确保查询条件正确并且包含了需要查询的属性。
  3. 属性定义错误:在模型中定义属性时,可能存在错误导致属性的值无法正确保存或查询。可以检查模型类中属性的定义,确保属性的类型、名称和数据库字段的映射关系正确。
  4. 数据库连接问题:如果数据库连接出现问题,可能导致属性的值无法正确保存或查询。可以检查数据库连接配置,确保数据库连接正常并且可以正常访问。

针对以上可能的原因,可以采取以下措施解决问题:

  1. 检查表单保存逻辑:确保表单数据在保存时正确地将属性的值保存到数据库中。可以通过打印日志或调试工具来检查保存逻辑是否正确执行。
  2. 检查查询条件:确保查询语句中包含了需要查询的属性,并且查询条件正确。可以通过打印日志或调试工具来检查查询语句是否正确执行。
  3. 检查模型属性定义:确保模型类中属性的定义正确,包括属性的类型、名称和数据库字段的映射关系。可以通过检查模型类的代码来确认属性定义是否正确。
  4. 检查数据库连接:确保数据库连接配置正确,并且数据库可以正常访问。可以尝试连接数据库并执行简单的查询语句来确认数据库连接是否正常。

如果以上措施都没有解决问题,可以考虑以下可能的进一步调查和解决方案:

  1. 检查数据库表结构:确保数据库表结构与模型类定义一致,包括属性的类型、名称和数据库字段的映射关系。可以通过数据库管理工具或命令行工具来检查数据库表结构。
  2. 检查数据库数据:确保数据库中存在包含正确属性值的记录。可以通过查询数据库或使用数据库管理工具来检查相关记录的属性值。
  3. 检查Django版本和配置:确保使用的Django版本和配置正确,并且与模型类定义兼容。可以查阅Django官方文档或社区资源来获取相关信息。

总结:在处理Django模型属性保存正确但查询返回None类型的问题时,需要综合考虑数据库操作、查询条件、模型定义和数据库连接等多个方面的因素。通过逐步排查可能的原因,并采取相应的解决措施,可以解决该问题并确保属性的正确保存和查询。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

37.Django1.11.6文档

验证模型实例 与普通表单验证类型类似,模型表单验证在调用is_valid() 或访问errors 属性隐式调用,或者通过full_clean() 显式调用,尽管在实际应用中你将很少使用后一种方法...使用commit=False 另外一个副作用是在模型具有多对多关系时候。 如果模型具有多对多关系而且当你保存表单指定commit=False,Django 不会立即为多对多关系保存表单数据。 ...在你手工保存表单生成实例之后,你可以调用save_m2m() 来保存多对多表单数据。 ...但是,formets表单域不会包含required属性,因为添加和删除表单验证可能不正确。 BaseFormSet。...through属性是对管理多对多关系模型引用。 在定义多对多字段,此模型Django自动创建。 其次,GroupAdmin必须手动排除members字段。

24.3K80

Django模型model

定义模型类 在模型中定义属性,会生成数据库表中字段 django根据属性类型确定以下信息: 当前选择数据库支持字段类型 渲染管理表单使用默认html控件 在管理站点最低限度验证 django...会为表增加自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认主键列 属性命名限制 不能是python保留关键字 由于django查询方式,不允许使用连续下划线...定义模型属性 定义属性,需要字段类型 字段类型被定义在django.db.models.fields目录下,为了方便使用,被导入到django.db.models中 使用方式 导入from django.db...模型管理器 objects:是Manager类型对象,用于与数据库进行交互 当定义模型没有指定管理器,则Django会为模型类提供一个名为objects管理器 支持明确指定模型管理器...Django模型进行数据库查询操作接口,Django应用每个模型都拥有至少一个管理器 自定义管理器类主要用于两种情况 向管理器类中添加额外方法创建管理器对象保存数据到数据库 class TestInfoManager

11510

django_2

概述 ·django根据属性类型确定以下信息 ·当前选择数据库支持字段类型 ·渲染管理表单使用默认html控件 ·在管理站点最低限度验证 ·django会为表增加自动增长主键列...库 ·定义属性,需要字段类型,字段类型被定义在 django.db.models.fields目录下,为了方便使用, 被导入到django.db.models中 ·使用方式...(查询Django默认通过模型objects对象实现模型数据查询。...概述 ·django根据属性类型确定以下信息 ·当前选择数据库支持字段类型 ·渲染管理表单使用默认html控件 ·在管理站点最低限度验证 ·django...查询方式,不允许使用连续下划线 库 ·定义属性,需要字段类型,字段类型被定义在 django.db.models.fields目录下,为了方便使用, 被导入到django.db.models

3.6K30

后端框架学习-Django

模型是一个Python类,它是django.db.models.Model派生出子类。...创建数据 方案1: MyModel.objects.create(属性1=值1,属性2=值2,…) 成功:返回创建好实体对象 失败:抛出异常 方案2: 创建MyModel实例对象,并调用save()并保存...1=值1,属性2=值2)(,默认是AND查询) 等价于 条件查询 返回值:QuerySet,存放模型实例 exclude(条件) 语法同上 等价于 WHERE NOT 作用:返回不包含此条件全部数据集...查询谓词 类属性 + ‘__’ + 谓词 定义:做更灵活条件查询需要使用查询谓词 说明:每一个查询谓词都是一个独立查询功能 __exact:等值匹配 Author.objects.filter...) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑值)) 查询数据: 正向查询(有显性属性):book查出版社:book.publisher

9.3K40

django框架菜鸟教程_django框架菜鸟教程

4)请求体 请求体数据格式:表单类型字符串、JSON字符串、XML字符串 请求方式:POST/PUT/PATCH/DELETE 表单类型 通过request.POST属性获取,返回QueryDict对象...非表单类型 通过request.body属性获取最原始请求体数据,自己按照请求体格式(JSON、XML等)进行解析。request.body返回bytes类型。...如果为None则表示使用浏览器默认设置,一般为utf-8。 这个属性是可写,可以通过修改它来修改访问表单数据使用编码,接下来对属性任何访问将使用新encoding值。...id 多对应模型类对象.关联类属性_id 关联过滤查询 模型类条件查询模型类数据: 关联模型类名小写__属性名__条件运算符=值 # 例句:查询图书,要求图书中英雄描述包含"八" BookInfo.objects.filter...(heroinfo__hcomment__contains='八') 模型类条件查询模型类数据: 一模型类关联属性名__一模型属性名__条件运算符=值 # 查询图书阅读量大于30所有英雄 HeroInfo.objects.filter

3K40

django 1.8 官方文档翻译: 2-3-1 模型实例参考

一个辅助方法,它返回一个集合,包含模型当前所有延迟字段属性名称。...你可以读取并设置它值,就和其它属性一样,它会更新模型正确值。...当你调用save() Django 使用下面的算法: 如果对象主键属性为一个求值为True 值(例如,非None 值或非空字符串),Django 将执行UPDATE。...如果对象主键属性没有设置或者UPDATE 没有更新任何记录,Django 将执行INSERT。 现在应该明白了,当保存一个新对象,如果不能保证主键值没有使用,你应该注意不要显式指定主键值。...它根据日期字段返回下一个和上一个对象,并适时引发一个DoesNotExist。 这两个方法都将使用模型默认管理器来执行查询

1.9K10

Django内置通用类视图及实例

属性: model: 视图要显示模型 queryset: 表示对象一个查询集.queryset值优先于model值. template_name: 字符串表示模板名称. context_object_name...None):返回该视图要显示单个对象.如果提供了queryset,该queryset将作为对象查询源,否则,将使用get_queryset().get_object()从视图所有参数中查找pk_url_kwarg...get_context_data(**kwargs):返回显示对象上下文数据.这个方法基本实现需要object属性被视图赋值(即使是None).它返回一个包含这些内容字典: object:这个视图显示对象...显示表单视图,验证错误时,重新显示表单并显示错误信息;成功,重定向到一个新URL....显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用从对象模型自动生成表单(除非手动制定表单类).

2.9K40

django模型

这种方法告诉Django,每个字段中保存着什么类型数据 字段名:每个Field 实例名字(例如username)就是字段名字,并且是机器可读格 式。...字段自述名 每个字段类型都接受一个可选位置参数——字段自述名,如果没有给定自述名, Django将根据字段属性名称自动创建自述名——将属性名称下划线替换成空格 ForeignKey、 ManyToManyField...blank=True,表单验证允许该字段为空 blank=False,该字段就是必须 字段选项——choices 二元组组成一个可迭代对象(如列表或元组),用来给字段提供选择项,如果设置了 choices...如果有多条记录满足get() 查询条件,Django 也将报错。这种情况将引发 MultipleObjectsReturned,它同样是模型类自身一个属性。...指定显示列 values(返回一个列表) 返回一个ValuesQuerySet——QuerySet一个子类,迭代返回字典而不是模型实例对 象。

3.1K20

Django 2.1.7 视图 - HttpReqeust对象、QueryDict对象

关于视图篇章 Django 2.1.7 视图 Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据 Django 2.1.7 视图 - 自定义404错误、500错误 在前面的篇章基本讲述了视图使用...如果为None则表示使用浏览器默认设置,一般为utf-8。 这个属性是可写,可以通过修改它来修改访问表单数据使用编码,接下来对属性任何访问将使用新encoding值。...QueryDict对象 定义在django.http.QueryDict HttpRequest对象属性GET、POST都是QueryDict类型对象 与python字典不同,QueryDict类型对象用来处理同一个键带有多个值情况...使用form表单请求,method方式为post则会发起post方式请求,需要使用HttpRequest对象POST属性接收参数,POST属性是一个QueryDict类型对象。...对于checkbox控件,name属性值相同为一组,被选中项会被提交,出现一键多值情况。 键是表单控件name属性值,是开发人员编写。 值是用户填写或选择

1.5K20

Django MVT之M

字段类型 Django中每个模型类都会被映射为数据表,而模型属性则被映射为数据表中字段。...所有数据字段属性都必须继承自抽象类django.db.models.Field,开发者可以继承该抽象类来定义自己字段类型,当然也可以使用Django自带一系列Field子类。...1)参数auto_now表示每次保存对象,自动设置该字段为当前时间,用于”最后一次修改”时间戳,它总是使用当前日期,默认为false。...null纯粹是数据库范畴概念,而blank是数据验证范畴(后台管理表单)。如果字段设置blank=True,表单验证将允许输入空值。如果字段设置blank=False,则该字段为必填。...一类对象查询多类: # 查询所用数据 一类对象.多类名小写_set.all() 多类对象查询一类: # 查询多类对象对应一类 多类对象.关联属性 # 查询多类对象对应一类特定属性,比如id

1K10

django之文件上传下载等相关

2)设计模型(M) 这里模型只包括了两个属性:用户名(即谁上传了该文件);文件名。...,或者要符合某种模式输入才有效,这些处理起来非常方便,不用自己再单独写代码去验证表单数据正确性,所以在开发中比较常用,Form提供了很多表单字段,比如日期,文本类型等,如果你熟悉基本html,学起来会非常容易上手...,下面只说下表单文件上传,因为这个类型比较特殊,需要一点特殊处理,我们来创建一个简单一个实例: # ....这个函数判断用户是否为POST请求,如果是并验证是有效,然后就返回OK,在验证正确返回OK中间放我们上传文件处理函数handle_upload_file,因为只有文件上传成功能返回OK。...属性(form.files[‘file’]),这是表单提供属性

3.1K30

Django 2.1.7 模型类 - 字段类型

上一篇Django 2.1.7 模型 - 使用mysql数据库连接访问讲述了如何使用mysql作为数据库,执行模型查询数据,并返回渲染页面。...在官方文档中,关于字段类型描述非常多,如下: 模型字段定义属性 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列...” 属性命名限制: 不能是python保留关键字。 不允许使用连续下划线,这是django查询方式决定。...定义属性需要指定字段类型,通过字段类型参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField...对比:null是数据库范畴概念,blank是表单验证范畴。 db_column:字段名称,如果未指定,则使用属性名称。

1.2K10

Django 2.1.7 模型类 - 字段类型

上一篇Django 2.1.7 模型 - 使用mysql数据库连接访问讲述了如何使用mysql作为数据库,执行模型查询数据,并返回渲染页面。...在官方文档中,关于字段类型描述非常多,如下: 模型字段定义属性 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列...属性命名限制: 不能是python保留关键字。 不允许使用连续下划线,这是django查询方式决定。...定义属性需要指定字段类型,通过字段类型参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField:...对比:null是数据库范畴概念,blank是表单验证范畴。 db_column:字段名称,如果未指定,则使用属性名称。

1.7K30

Django内置通用类视图CBV及示例

属性: model: 视图要显示模型 queryset: 表示对象一个查询集.queryset值优先于model值. template_name: 字符串表示模板名称. context_object_name...None):返回该视图要显示单个对象.如果提供了queryset,该queryset将作为对象查询源,否则,将使用get_queryset().get_object()从视图所有参数中查找pk_url_kwarg...get_context_data(**kwargs):返回显示对象上下文数据.这个方法基本实现需要object属性被视图赋值(即使是None).它返回一个包含这些内容字典: object:这个视图显示对象...显示表单视图,验证错误时,重新显示表单并显示错误信息;成功,重定向到一个新URL....显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用从对象模型自动生成表单(除非手动制定表单类).

3.2K10

Django 学习笔记之表单

然后通关查询数据库,最后将查询所有商店信息返回给浏览器进行渲染显示。另外,博客系统中评论模块也是这个原理。因此,在一些站点上会爆出 XSS 漏洞。...如果你想把数据提交到原来页面,action 值为空就行,即 action="" method 属性:规定提交表单所用 HTTP 方法,一般选择 GET 或者 POST。...target 属性:规定 action 属性中地址目标(默认:_self)。如果填写值 _blank ,当点击按钮提交数据,在新窗口中打开新页面。 常用表单元素有以下这些: 对于每个输入字段 ,必须设置一个 name 属性,数据才会被正确提交。...它具有以下功能: 1)自动生成HTML表单元素 2)检查表单数据合法性 3)如果验证错误,重新显示表单(数据不会重置) 4)数据类型转换(字符类型数据转换成相应Python类型) 3.2 Form

2.5K30

关于“Python”核心知识点整理大全55

注意 2处和3处代码被称为查询,因为它们向数据库查询特定信息。在自己项目中编 写这样查询,先在Django shell中进行尝试大有裨益。...你制定了简要项目规 范,在虚拟环境中安装了Django,创建了一个项目,并核实该项目已正确地创建。你学习了如何 创建应用程序,以及如何定义表示应用程序数据模型。...用于添加主题表单 让用户输入并提交信息页面都是表单,那怕它看起来不像表单。用户输入信息,我们需 要进行验证,确认提供信息是正确数据类型,且不是恶意信息,如中断服务器代码。...然 后,我们再对这些有效信息进行处理,并将其保存到数据库合适地方。这些工作很多都是 Django自动完成。...如果请求方法不是POST,请求就可能是GET, 因此我们需要返回一个空表单(即便请求是其他类型返回一个空表单也不会有任何问题)。

12810

Django 1.10中文文档-第一个应用Part7-自定义管理站点

你可以在注册通过配置来实现。 现在先来试试重新排序表单字段。...点击它,会弹出一个新增Question表单,类似Question自己添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联外键对象。...如果我们想要同时显示一些别的内容,可以使用list_display属性,它是一个多个字段组成元组,其中每一个字段都会按顺序显示在页面上,代码如下: # polls/admin.py class...过滤器显示筛选类型取决与你过滤字段,由于pub_data是DateTimeField,所以Django就自动给出了“今天”、“过去7天”、“本月”、“今年”这几个选项。 这一切进展顺利。...}, ] DIRS是在加载Django模板检查文件系统目录列表;它是一个搜索路径。

3.6K60
领券