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

在POST数据中需要一个不可编辑的字段,但ModelForm不允许

在这种情况下,可以通过以下两种方式来实现:

  1. 使用exclude字段:在ModelForm中,可以使用exclude字段来排除某些字段,使其在表单中不可编辑。可以在定义ModelForm时,将需要排除的字段添加到exclude字段中。例如:
代码语言:python
复制
class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        exclude = ['field_name']

这样,表单中的该字段将不可编辑。

  1. 使用widgets字段:在ModelForm中,可以使用widgets字段来自定义表单字段的属性,包括是否可编辑。可以在定义ModelForm时,将需要设置为不可编辑的字段添加到widgets字段中,并设置其属性为{'readonly': 'readonly'}。例如:
代码语言:python
复制
class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        widgets = {
            'field_name': forms.TextInput(attrs={'readonly': 'readonly'})
        }

这样,表单中的该字段将被设置为只读,不可编辑。

以上两种方式都可以实现在POST数据中需要一个不可编辑的字段的需求。根据具体情况选择其中一种方式即可。

推荐的腾讯云相关产品:腾讯云云服务器(ECS),产品介绍链接地址:https://cloud.tencent.com/product/cvm

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

相关·内容

Django ModelForm操作及验证方式

如果你想禁用这个行为,请设置form标签novalidate属性,或者制定一个不同字段,如TextInput。...(也可以自定义字段) localized_fields=('birth_date',) # 本地化,如:根据不同时区显示数据 如: 数据 2016-12-27 04:10:57 setting配置...} # localized_fields=('ctime',) # 哪些字段做本地化 4、ModelForm 数据库操作 4.1、创建数据save 如果数据验证是ok,那么save,就直接在数据创建完数据了...额外字段 数据验证钩子 从上面的Form和ModelForm,他们都是继承了BaseForm,而is_valid是BaseForm定义,所以ModelForm也能和Form一样使用各种钩子 额外字段...像网页上checkbox,一个月内免登陆,用提交到数据库么?

1.2K10

Django之ModelForm

在前面有篇博客,我写了一个叫forms组件东西,可以帮助我们完成校验数据、渲染标签功能和在前端页面局部刷新功能,功能封装已经很好了,当时已经很开心了。万万没想到,还有比它功能更强大东西。...forms组件只能渲染出type=text类型标签,而且还要我们写无数多个字段,然后跟上校验条件,用forms组件做编辑页面时,还要手动编辑对象一个值写入标签value,这些等等虽然相较没用...) if form.is_valid(): form.save() #当数据校验通过后,我们不用写什么create,只需要写上这一句,就完成创建一条记录...ModelForm可以渲染select标签,它在编辑页面还有更强大功能,你只需把一个模型类对象传给他,他就可以帮你把对象每个值取出来,然后赋予标签value,更新数据时也不用写update了,用...这就解决了我们要手动去把要编辑对象每个字段值取出来放入标签

54320

Django搭建博客(八):进阶:form与 model配合使用

一、使用情景 我们后台管理页面需要一个表单来提交和修改博客,按照上一篇讲,我们可以这么使用: 先定义一个 Form类,包括标题、标签和内容三个字段: class ArticleForm(forms.Form...form,提交表单时,我们还需要将各个字段赋值给 model对应字段。...修改文章页面我们需要先将表格填充好,再渲染页面。 这时我们表单还只有几个字段,工作量并不大,但是如果表单字段增加到十几个,工作量就有点大了。...二、使用 ModelForm 使用 ModelForm 很简单,我们只需要创建一个元类并给对应属性赋值即可,如下: class ArticleForm(forms.ModelForm): class...这样当我们提交表单之后,只需要调用 ArticleForm save 方法即可将添加博客保存到数据库中去。

58330

Django Form使用

对于 Django Form 表单用法,我们只需要了解以下几点: 它是一个定义一个 Form 类,基类是 django.forms.Forms 或者 django.forms.ModelForm...ModelForm 比较简单,它适用于:当你创建表单内容与某个 Model 内容很相似的情况。如上面文档介绍一样 Form 类,clean 方法可以在做表单验证,它是一个验证方法。...,每个元素都用数据一个字段去做存储不太现实,因为需求是一直变化。...所以我采用解决办法是提取公共元素,其他可变元素用了一个json字段存在数据。 而这样导致问题就是,不能使用 ModelForm ,我选择了使用普通 forms.Form 。...问题来了,新建还行,当我们使用编辑时候,会发现,没办法做修改,即当代码走到 form.is_valid() 时,它始终做了 dict 初始化,它不再会接受你新输入值。

2.2K20

DjangoModelform组件

先举个例子:比如数据库中有一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等信息,现在让你写一个创建学生页面,你该怎么写?...首先会在前端罗列这些字段,让用户填写,然后后台逐个接收用户输入,创建一个学生对象,保存。...ModelForm 创建modelform #首先导入ModelForm from django.forms import ModelForm #视图函数,定义一个类,比如就叫StudentList...,这个类要继承ModelForm,在这个类再写一个原类Meta(规定写法,并注意首字母是大写) #在这个原类,有以下属性(部分): class StudentList(ModelForm):...如果不用ModelForm编辑时候得显示之前数据吧,还得挨个取一遍值,如果ModelForm,只需要一个instance=obj(obj是要修改数据一条数据对象)就可以得到同样效果

37210

Django之ModelForm详解

先来一个简单例子来看一下这个东西怎么用:   比如我们数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生页面,你后台应该怎么写呢?...django.forms import ModelForm   视图函数,定义一个类,比如就叫StudentList,这个类要继承ModelForm,在这个类再写一个原类Meta(规定写法,并注意首字母是大写...然后url对应视图函数实例化这个类,把这个对象传给前端。...保存数据时候,不用挨个取数据了,只需要save一下。...: 如果不用ModelForm编辑时候得显示之前数据吧,还得挨个取一遍值,如果ModelForm,只需要一个instance=obj(obj是要修改数据一条数据对象)就可以得到同样效果

98140

django入门:Admin管理系统及表单(干货)

from blog.models import Post, Category, Tag # 应用目录下 admin.py 文件,对创建模型进行注册,可以一起用列表注册,也可以分开注册 admin.site.register...= ['title', 'author'] # 排除一些不想被编辑 fields, 没有列表不可编辑 fields = ('title', 'author')...# 表单对应数据库模型 model = Post # 指定表单需要显示字段 fields = ['title', 'body'] 2.创建表单视图 from...时候才需要处理表单数据 if request.method = 'POST': # 用户提交信息存在 request.POST ,相当于一个字典取值 form...提交表单错误 不存在对应模型(POST 方式) 1. forms.py 创建表单 # 假设有个信息反馈表单 class ContractForm(forms.Form): subject

2.8K20

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

Django,创建表单最简单方式是使用ModelForm,它根据我们第18章定义模型 信息自动创建表单。...1处,我们定义了一个名为TopicForm 类,它继承了forms.ModelForm。...最简单ModelForm版本只包含一个内嵌Meta类,它告诉Django根据哪个模型创建表单,以 及表单包含哪些字段。...我们使用用户输 入数据(它们存储request.POST)创建一个TopicForm实例(见3),这样对象form将包含 用户提交信息。...函数is_valid() 核实用户填写了所有必不可字段(表单字段默认都是必不可),且输入数据与要求 字段类型一致(例如,字段text少于200个字符,这是我们第18章models.py

13110

12.Django基础十之Form和ModelForm组件

框 choice字段注意事项     使用选择标签时,需要注意choices选项可以配置从数据获取,但是由于是静态字段 获取值无法实时更新,需要重写构造方法从而实现choice实时更新。     ...举个例子,你也许会有个Book 模型,并且你还想创建一个form表单用来添加和编辑书籍信息到这个模型。 在这种情况下,form表单定义字段将是冗余,因为我们已经模型定义了那些字段。   ...,并且还有就是如果你验证数据比你后端数据字段多,那么他自会自动剔除多余需要保存字段,比如那个重复确认密码就不要保存 return redirect('show')...#首先导入ModelForm from django.forms import ModelForm #视图函数,定义一个类,比如就叫StudentList,这个类要继承ModelForm,在这个类再写一个原类...    如果不用ModelForm编辑时候得显示之前数据吧,还得挨个取一遍值,如果ModelForm,只需要一个instance=obj(obj是要修改数据一条数据对象)就可以得到同样效果

3.2K20

Form和ModelForm组件

Form介绍  我们之前HTML页面利用form表单向后端提交数据时,都会写一些获取用户输入标签并且用form标签把它们包起来。...与此同时我们好多场景下都需要对用户输入做校验,比如校验用户是否输入,输入长度和格式等正不正确。如果用户输入内容有错误就需要在页面上相应位置显示对应错误信息.。...使用选择标签时,需要注意choices选项可以配置从数据获取,但是由于是静态字段 获取值无法实时更新,需要重写构造方法从而实现choice实时更新。...举个例子,你也许会有个Book 模型,并且你还想创建一个form表单用来添加和编辑书籍信息到这个模型。 在这种情况下,form表单定义字段将是冗余,因为我们已经模型定义了那些字段。...如果我们不重写具体字段并设置validators属性化,ModelForm是按照模型字段validators来校验。 save()方法 每个ModelForm还具有一个save()方法。

5K10

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

Python框架Django有着诸多优点,它提供models可以让开发者方便地操作数据库,正是由于对上层良好封装,使得提升数据库操作性能必须要清楚地知道Django数据库操作到底执行了哪些SQL...使用Django数据模型操作数据库时,了解这些底层SQL操作很有必要。...当你通过表单获取你模型数据,但是需要给模型里null=False字段添加一些非表单数据,该方法会非常有用。...我们创建了一个叫文章Article模型,里面包含title, body和作者author等多个字段,其中author字段非空null=False。...我们由Article模型创建了一个ArticleForm表单,可以让用户发表新文章,但是我们故意把author字段除外了,因为我们不希望用户编辑作者。

2.8K10

django 关于 ModelForm

ModelForm:大家写表单时候,会发现表单Field和模型Field基本上是一模一样,而且表单需要验证数据,也就是我们模型需要保存。...,就不需要把Article模型中所有的字段一个个重复写一遍了。...如果只想针对其中几个字段进行验证,那么可以给fields指定一个列表,将需要字段写进去。...exclude = ['category']自定义错误消息:使用ModelForm,因为字段都不是表单定义,而是模型定义,因此一些错误消息无法字段定义。...另外,我们调用save方法时候,如果传入一个commit=False,那么只会生成这个模型对象,而不会把这个对象真正插入到数据

78560

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

用于添加新条目的表单 我们需要创建一个与模型Entry相关联表单,这个表单定制程度比TopicForm要高些: forms.py from django import forms from...新类EntryForm继承了forms.ModelForm,它包含Meta类指出了表单基于模型以及要在表单包含哪些字段。这里也 给字段'text'指定了一个空标签(见1)。...渲染页面以及处理表单数据时,都需要知道针对是哪 个主题,因此我们使用topic_id来获得正确主题(见1)。 2处,我们检查请求方法是POST还是GET。...如果请求方法为POST,我们就对数据进行处理:创建一个EntryForm 实例,使用request对象POST数据来填充它(见4);再检查表单是否有效,如果有效,就设 置条目对象属性topic,再将条目对象保存到数据库...19.1.3 编辑条目 下面来创建一个页面,让用户能够编辑既有的条目。 1. URL模式edit_entry 这个页面的URL需要传递要编辑条目的ID。

11910

CRM客户关系管理系统(七) 第七章、动态modelform功能实现

第七章、动态modelform功能实现  7.1.动态modelform实现 (1)给第一列添加一个a标签 kingadmintag.py  (2)kingadmin/urls.py urlpatterns...里面的每个字段,然后循环出每个字段添加自定义样式 def __new__(cls, *args, **kwargs): #cls.base_fields是一个元祖,里面是 所有的...里面的每个字段,然后循环出每个字段添加自定义样式 def __new__(cls, *args, **kwargs): # cls.base_fields是一个元祖,里面是 所有的...(1)views.py (2)table_obj_change.html 显示表名和修改字段名 添加一个按钮 效果:  修改功能实现  kingadmin/views.py def table_obj_change...> add {% include 'kingadmin/table_obj_change_component.html' %} {% endblock %} (4)新增加数据应该显示最前面

82700

Django学习之八:forms组件【对

通过form类实例化form对象时,需要提供一个字典类型(映射类型)数据作为第一个位置参数,如{'name':'ZJQ', 'age': 300} 或 request.POST等。...例如, 一个modelCharField 被表示为 一个formCharField....这是modelform非常重要一点,因为我们得到form正确数据后,是要同步到数据,我们不可能将数据再一一ORM操作到数据。...这样就提供了一个方式,可以修改对象,再提交到库。还有一种情况,如果有一个manytomany字段,创建对象,建立关系可能需要先构建关联表数据后,才能保存。...所以这个字段初始化时,需要一个可选参数就是input_formats。提供专业to_python和to_html 格式。

2.1K30

自定义admin组件

2 此时想在每一列后面放在编辑按钮。 app01/strak.py给添加一个方法,使每一条数据都有一个编辑按钮。 ? ?..." % user_id) View Code  edit方法需要一个obj参数来获取用户id,service/stark.pylist_view给它传递, ?...添加数据时候,如果哪个字段和其他表有关联,可以输入框后面点击加号去添加关联表数据。...Ok  ,现在能跳转到对应添加页面,但是我们需要知道添加完数据之后给哪个字段添加数据,并且提交表单之后要返回添加数据,而且要把值放到字段对应select标签里。...因此需要一个一个页面作为中间人来处理。这个中间人需要完成工作:1.执行add_view.htmljs,将publish添加数据放在publish下拉列表;2.

1.5K10
领券