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

为什么django update form不使用现有数据重新填充我的字段

Django的update form不使用现有数据重新填充字段的原因是为了保持数据的一致性和安全性。当使用update form时,通常是为了更新数据库中的数据,而不是重新填充字段。

使用现有数据重新填充字段可能会导致数据不一致的问题。假设一个字段在数据库中已经被更新了,但是在重新填充字段时,使用了旧的数据进行填充,这样就会导致数据库中的数据和表单中展示的数据不一致。

另外,重新填充字段也可能引发安全性问题。如果敏感数据被重新填充到表单字段中,而这些字段在提交表单时会被传输到服务器,那么就有可能泄露敏感数据。

为了避免这些问题,Django的update form默认不会使用现有数据重新填充字段。如果需要在表单中展示已有数据,可以通过在表单初始化时手动填充字段的方式来实现。可以通过在视图函数中获取数据库中的数据,并将其传递给表单的初始数据参数来实现字段的填充。

以下是一个示例代码:

代码语言:txt
复制
# views.py
from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    # 从数据库中获取数据
    data = MyModel.objects.get(id=1)
    
    # 使用获取的数据初始化表单
    form = MyForm(initial={'field1': data.field1, 'field2': data.field2})
    
    return render(request, 'my_template.html', {'form': form})
代码语言:txt
复制
<!-- my_template.html -->
<form method="POST">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Submit</button>
</form>

在上述示例中,我们通过initial参数将数据库中的数据传递给表单的初始化数据,从而实现了字段的填充。

需要注意的是,这只是一种常见的实现方式,具体的实现方式可能因项目需求而异。在实际开发中,可以根据具体情况选择最合适的方式来填充字段。

相关搜索:为什么我的form_validation不工作?错误:字段表单填写不正确为什么我的update函数返回新的查询,而不更新数据库?为什么我不能在google form中自动填充的查找函数中使用arrayformula?如何使用表单集自动使用已登录的用户填充我的Django Model 'updated_by‘字段?如何在Django和postgresql中用我的数据库中的字段填充html表单?react-final- form :使用表单更改返回的数据更新验证规则和重新验证字段当我输入某些id时,如何自动填充这些bootstrap_form字段,然后在django中自动填充那些与id相关的数据我应该为React中的WYSIWYG数据使用哪个Django模型字段?为什么在使用Selenium C#清除表单中的字段时,当我单击submit时表单会重新填充数据?填充对象后,我想使用这些字段来获取其他对象的数据当我预先使用VBA创建工作表时,为什么我的数据没有填充?当使用VARBINARY字段时,为什么我的merge (upsert)在HSQLDB数据库中类型不匹配而失败?为什么我的数据库中没有使用两个选择字段显示的数据?我使用pymongo从mongodb检索数据,但为什么每次输出的字段顺序都不同?在Windows Workflow 4中,当我尝试仅使用条件数据触发器时,为什么我的状态重新进入自身为什么我无法在不丢失所有数据的情况下将文本放入我的堆叠条形图(使用geom_bar的of图)中?self.body中的表单数据为null。我正在使用Preact和Total js。value="@{M.email}“不工作。它将使用该值填充表单
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django内置通用类视图及实例

参数,如果找到了这个参数,该方法使用这个参数值执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用填充表单数据和错误信息重新渲染上下文...get_context_data(**kwargs):返回显示对象上下文数据. 4.CreateView ? 显示用于创建对象表单视图,通过验证错误信息重新显示视图,并且保存对象....显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用从对象模型自动生成表单(除非手动制定表单类)....要获取模型是 Publisher。

2.9K40

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

django自带view如下表所示: 类名 功能 例子 View 基本View, 可以在任何时候使用 见后面详细介绍 RedirectView 重新定向到其他URL 将访问"/log-in/"用户重新定向到...参数,如果找到了这个参数,该方法使用这个参数值执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用填充表单数据和错误信息重新渲染上下文...显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用从对象模型自动生成表单(除非手动制定表单类)....要获取模型是 Publisher。

3.2K10
  • django 1.8 官方文档翻译: 5-1-1 使用表单

    Django 会处理表单工作中三个显著不同部分: 准备并重新构造数据数据创建HTML 表单 接收并处理客户端提交表单和数据 可以手工编写代码来实现,但是Django 可以帮你完成所有这些工作。...在模型实例包含数据情况下,在模板中对它做处理很少有什么用处。但是渲染一个未填充表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例时,我们一般从数据库中获取它。...当我们实例化表单时,我们可以选择让它为空还是预先填充它,例如使用: 来自一个保存后模型实例数据(例如用于编辑管理表单) 我们从其它地方获得数据 从前面一个HTML 表单提交过来数据 最后一种情况最令人关注...这是我们在第一个访问该URL 时预期发生情况。 如果表单提交使用POST 请求,那么视图将再次创建一个表单实例并使用请求中数据填充它:form = NameForm(request.POST)。...手工渲染字段 我们没有必要非要让Django 来分拆表单字段;如果我们喜欢,我们可以手工来做(例如,这样允许重新字段排序)。

    4.2K20

    Django-form表单

    我们可能想使用非常复杂字段,以允许用户做类似从日历中挑选日期这样事情,等等。 这个时候,让Django 来为我们完成大部分工作是很容易。...它还意味着当Django 收到浏览器发送过来表单时,它将验证数据长度。 Form 实例具有一个is_valid() 方法,它为所有的字段运行验证程序。...这是我们在第一个访问该URL 时预期发生情况。 如果表单提交使用POST 请求,那么视图将再次创建一个表单实例并使用请求中数据填充它:form = NameForm(request.POST)。...> 手工渲染字段 我们没有必要非要让Django 来分拆表单字段;如果我们喜欢,我们可以手工来做(例如,这样允许重新字段排序)。...每个字段都是表单一个属性,可以使用{{ form.name_of_field }} 访问,并将在Django 模板中正确地渲染。例如: ?

    3.9K70

    django 1.8 官方文档翻译: 3-4-3 使用基于类视图处理表单

    使用基于类视图处理表单 表单处理通常有3 个步骤: 初始GET (空白或预填充表单) 带有非法数据POST(通常重新显示表单和错误信息) 带有合法数据POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复样本代码...如果你想使用一个自定义ModelForm(例如添加额外验证),只需简单地在你视图上设置form_class。...Changed in Django 1.8: 省略fields 属性在以前是允许,但是导致表单带有模型所有字段。...最后,我们来将这些新视图放到URLconf 中: #urls.py from django.conf.urls import url from myapp.views import AuthorCreate...在这个视图中,请确保你没有将created_by 包含进要编辑字段列表,并覆盖form_valid() 来添加这个用户: #views.py from django.views.generic.edit

    1.8K20

    Django数据库操作之save与update使用

    例如数据更新操作,对单条记录,可以使用save或者是update两种方式 在Django工程下settings.py下将log设置为DEBUG,即可查看save和update分别执行了哪些SQL语句...,发现更新时候把Example中字段都SET赋值一次 使用update Example.objects.filter(id=481).update(total_calories = 10)...从SQL执行情况来看,使用upate是要优于save方式。 从使用情境上看,update更加适用于批量数据更新,而save则更适合当然也只适合做单条记录数据更新操作了。...在使用Django数据模型操作数据库时,了解这些底层SQL操作很有必要。.../article_create_form.html', {'form': form}) 以上这篇Django数据库操作之save与update使用就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.9K10

    浅谈django 模型类使用save()方法好处与注意事项

    __class__, self).save(*args, **kwargs) 在django 模型类里,如果有些字段值是需要动态生成,那么就在模型类里同样添加上对应字段,并写上对应方法, 然后调用...(下面情况如果遇到时再参考即可,表达有点乱,没有遇到这种情况可能会感觉莫名其妙,重点是红色字体部分) 同时,这样动态填充避免了在字段中设置外键弊端(当外键对应字段值发生变化时,此模型类里已经记录数据也可能会受到影响...,) 尤其是需要记录消费信息时,会员身份变化时,对应折扣不一样,当会员身份升级时,如果消费记录只是在list页面用方法展示结果,没有使用save()将其填充到 对应字段,就会使消费记录因为关联性而发生希望变动...#这里is_valid()是Django默认,检查是否正确 if seatform.is_valid(): # 这里向数据库新增一条信息,然后保存...以上这篇浅谈django 模型类使用save()方法好处与注意事项就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.6K21

    Django学习之八:forms组件【对

    目录 Django forms组件 bound and unbound form instance forms渲染有关 隐藏一个字段渲染它 form 校验 form类 ModelForm 利用...隐藏一个字段渲染它 pass form 校验 所谓校验,就是绑定到form对象数据,校验其是否符合定义约束条件。...form 实例,可以是空,也可以提前填充数据。归纳总结form实例化数据主要来自三个方面: 来自model instance 来自其它数据源 来自用户提交表单数据。...上面三种Field对应表单控件默认都是Select, 而对于要使用input-check,就要给字段重新赋值widget参数为一个Check类型widget。...widgets class 每种类型Field class 都有一个默认对应Widget class。 为什么这样设计?为什么Field class 把这个干完呢?

    2.2K30

    Django Ueditor二次展示富文本内容(三)

    在上一篇文章:在非admin页面使用 Django Ueditor(二)中我们使用form向前端模板渲染了Ueditor富文本编辑器界面,但当时只讲到了创建一个新文本内容界面的做法,对于该文本内容在修改界面的二次展示并未作进一步解释...表单提交,所以我们在这里用post代替put作为修改数据意思,简单起见,不考虑restfull那些标准做法哈 Article.objects.filter(id=id).update(... {% if article %} //如果文章有内容就填充在content_form中 document.getElementById("id_content").value...='{{ article.content|safe }}'; {% endif %} 解释:这里id_content是根据form字段默认设置富文本标签id,如果你不知道它id...是什么,可以在前端按F12或者查看源码查看该文本id是什么,一般都是id_+form字段名称。

    76010

    Django admin 一些有用设置

    Django自带后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个appadmin.py文件中进行控制。以下是最近摸索总结出比较实用配置。...这样对多对多字段操作更方便。 另外,可以用fields或exclude控制显示或者排除字段,二选一即可。 例如,想只显示标题、作者、分类标签、内容。...2、编辑字段集合 不过,不怎么用fields和exclude。用得比较多是fieldsets。该设置可以对字段分块,看起来比较整洁。...4.设置只读字段  在使用admin时候,ModelAdmin默认对于model操作只有增加,修改和删除,但是总是有些字段希望用户来编辑。...我们如何修改这个app名称达到定制要求呢,其实Django已经在文档里进行了说明。 从Django1.7以后不再使用app_label,修改app相关需要使用AppConfig。

    2.6K70

    学习版pytest内核测试平台开发万字长文入门篇

    使用el-form标签添加用户名、密码、忘记密码和登录按钮。:model给表单绑定了数据对象,分别填充form.username、form.password、form.rememberMe: ?...用到了el-form和el-table标签。表格数据通过:data绑定到了tableData对象,调用后端接口后,从响应中拿数据填充: ? 新增用户弹窗入口也是放在这个文件中: ?...Role有个models.JSONField字段,为菜单权限JSON,使用Djangofixtures给项目添加初始化数据: ?...后面的代码就集中在serializers.py和views.py两个文件,序列化器提供数据库表字段和响应json序列化和反序列化,视图使用序列化器,编写业务处理代码。...点击退出,返回登录页,重新登录。 查询右上角个人信息,包括用户名、昵称、角色。 通过右上角下拉菜单修改密码,和老密码匹配会提示修改失败,填写正确信息会修改成功,自动跳转到登录页面重新登录。

    4.9K30

    37.Django1.11.6文档

    算法使用SELECT来判断是否存在需要更新行。 而新算法直接尝试使用UPDATE。 在某些少见情况下,一个已存在行UPDATE操作对Django不可见。 ...如果你使用Django模板系统,会处于保护之下。 如何关闭 如果你希望数据自动转义,无论是在站点、模板还是变量级别,你可以使用几种方法来关闭它。 然而你为什么想要关闭它呢?...在模型实例包含数据情况下,在模板中对它做处理很少有什么用处。 但是渲染一个未填充表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例时,我们一般从数据库中获取它。...根据您需求,包含相关字段自定义用户模型可能是您更好选择,但是,与项目应用程序中默认用户模型现有关系可能有助于额外数据库加载。...例如: date_hierarchy = 'pub_date' 您也可以使用__查找在相关模型上指定一个字段,例如: date_hierarchy = 'author__pub_date' 这将根据现有数据智能地填充自己

    24.3K80

    初探Django框架

    难受是因为要测试网站是通过Django+Nginx+uwsgi搭建, 直接看源码让一头雾水。...也就不得不来学习一下Django框架, 所以就摘了一些觉得比较重要内容敲一遍, 然后把内容贴到这里(再加上碎碎念)。...所以我们可以将用户请求分为两类: a.如果涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。...b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。 模型将视图函数所需要数据返回到视图函数中, 然后视图函数再把返回数据填充到模板中空格中,最后返回网页给用户。...更新数据 修改数据可以使用 save() 或 update(), 示例代码HelloWorld/HelloWorld/testdb.py如下: from django.http import HttpResponse

    2K20

    Django学习笔记之Django Form表单详解

    我们可能想使用非常复杂字段,以允许用户做类似从日历中挑选日期这样事情,等等。 这个时候,让Django 来为我们完成大部分工作是很容易。...它还意味着当Django 收到浏览器发送过来表单时,它将验证数据长度。 Form 实例具有一个is_valid() 方法,它为所有的字段运行验证程序。...这是我们在第一个访问该URL 时预期发生情况。 如果表单提交使用POST 请求,那么视图将再次创建一个表单实例并使用请求中数据填充它:form = NameForm(request.POST)。...> 手工渲染字段 我们没有必要非要让Django 来分拆表单字段;如果我们喜欢,我们可以手工来做(例如,这样允许重新字段排序)。...每个字段都是表单一个属性,可以使用{{ form.name_of_field }} 访问,并将在Django 模板中正确地渲染。

    4.6K10

    Django框架开发015期 数据查询,根据搜索条件查询用户

    由于这里我们是做查询信息,所以我们重新开发一个新视图函数专门用于显示查询结果,这样表述比较清晰。当然,有的读者可能会问:“能不能把这个功能开发在用户列表显示视图函数中?”...主要在这个查询中,我们使用到了filter函数功能,用来过滤指定字段数据,结果返回一个列表。如果查询不到,结果就返回一个长度为0空列表。...在filter方法内,我们使用了真实姓名truename这个字段去进行查询,传入mykey就是输入姓名关键词。...数据Django框架开发008期 Sqlite数据库常用SQL脚本 Django框架开发009期 sqlite数据库添加数据、查询数据操作,insert以及select语句使用 Django框架开发...010期 sqlite修改数据、删除数据操作,数据update以及delete语句使用 Django框架开发011期 Django框架开发Sqlite数据库,数据模型创建,用户表模型 Django

    32520

    零基础使用Django2.0.1打造在线教育网站(十七):要学习配置

    微信公众号: 啃饼思录 [weur28ez98.jpg] QQ: 2810706745(啃饼小白) 写在前面 本篇笔记我们将介绍要学习小页面的配置,为什么需要单独介绍...配置要学习 这就是要学习页面,它是通过Ajax来控制,也就是异步javascript和xml。它可以在保证当前页面不被重新刷新条件下,提交表单向后台传送数据。...我们可以利用Django自带ModelForm,这比form强大多了,除了继承现有字段还可以新增字段!...新增代码如下: # 进阶版函数 class AnotherUserAskForm(forms.ModelForm): # 除了继承现有字段还可以新增字段 class Meta:...这个数据表,发现数据已经保存成功了: [34h5z9khtw.png] 不知道细心地你发现没有,刚才电话号码输了:12306,页面提示是手机号,所以必须是11位,因此这里必须加上手机号码合法性验证。

    70810

    Python Django开发 经验技巧总结(一)

    文章目录 1.前后台数据传递 2.与数据库交互并返回数据几种比较常用方法 3.一个表单对应多个按钮解决方案 4.HTML中表单控件及操作 5.消息框架 message使用 6.日期和时间DateField...auto_now、auto_now_add 7.获取已登录用户名字 8.数据库表中属性自增/自减操作 9.执行原始sql语句 10.分页显示数据 1.前后台数据传递 view -> HTML:使用...填则默认到本页面。> {%csrf_token%} <!-这个是django一个标签,用于防止恶意攻击使用,如果不加入这个标签,会遇到不能提交问题,处理麻烦一点,建议加上。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django自带admin管理器,那么该字段在admin...() 执行时,让数据库去根据数据库当前值进行更新操作; 一旦当前对象被存储时,我们必须重新加载当前对象以获取到当前数据库中最新值。

    1.3K10

    Django学习-第十三讲(下):表单(一)forms.form、forms.modelform

    2.Django中表单使用流程 在讲解Django表单具体每部分细节之前。我们首先先来看下整体使用流程。...这样就可以生成一个表单了 2.1. django 表单常用Field 使用Field可以是对数据验证第一步。你期望这个提交上来数据是什么类型,那么就使用什么类型Field。...2.2 django 表单常用验证器 在验证某个字段时候,可以传递一个validators参数用来指定验证器,进一步对数据进行过滤。...', 'code': 'max_length'}]} 那么如果只想把错误信息放在一个列表中,而不要再放在一个字典中。这时候我们可以定义一个方法,把这个数据重新整理一份。...比如表单上验证字段没有包含模型中所有的字段,这时候就可以先创建对象,再根据填充其他字段,把所有字段值都补充完成后,再保存到数据库中。

    3.2K40
    领券