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

在填写表单之前,如何使用基于类的UpdateView创建新的“草稿”对象?

在填写表单之前,可以使用基于类的UpdateView创建新的“草稿”对象的方法如下:

  1. 首先,需要导入UpdateView类和相关的表单类。
代码语言:txt
复制
from django.views.generic.edit import UpdateView
from .forms import YourForm
  1. 创建一个继承自UpdateView的视图类,并指定相关的模型和表单类。
代码语言:txt
复制
class YourUpdateView(UpdateView):
    model = YourModel
    form_class = YourForm
  1. 在视图类中,重写get_object方法,用于获取要编辑的对象。如果要创建新的“草稿”对象,可以在该方法中返回一个新的空对象。
代码语言:txt
复制
def get_object(self, queryset=None):
    # 如果要创建新的“草稿”对象,返回一个新的空对象
    if queryset is None:
        queryset = self.get_queryset()
    obj = queryset.none()
    return obj
  1. 在urls.py中配置该视图类的URL映射。
代码语言:txt
复制
from .views import YourUpdateView

urlpatterns = [
    path('your-url/<int:pk>/', YourUpdateView.as_view(), name='your-update-view'),
]

通过以上步骤,就可以在填写表单之前使用基于类的UpdateView创建新的“草稿”对象。在访问对应的URL时,将会显示一个空的表单,可以用于创建新的对象。

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

相关·内容

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

使用基于视图处理表单 表单处理通常有3 个步骤: 初始GET (空白或预填充表单) 带有非法数据POST(通常重新显示表单和错误信息) 带有合法数据POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复样本代码...为了避免这点,Django 提供一系列通用基于视图用于表单处理。...这些通用视图将自动创建一个ModelForm,只要它们能知道使用哪一个模型: 如果给出model属性,则使用该模型。 如果get_object() 返回一个对象,则使用对象。...注意这里我们是如何配置通用基于视图;我们自己没有写任何逻辑: #views.py from django.views.generic.edit import CreateView, UpdateView...模型和request.user 为了跟踪使用CreateView 创建一个对象用户,你可以使用一个自定义ModelForm 来实现这点。

1.8K20

Django内置通用视图及实例

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

2.9K40

Django内置通用视图CBV及示例

FormView 提交From 网站联系我们或emai订阅form CreateView 创建对象 创建新文章页 UpdateView 更新对象 修改文章页 DeleteView 删除对象 删除文章页...参数,如果找到了这个参数,该方法使用这个参数值执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...显示表单视图,验证错误时,重新显示表单并显示错误信息;成功时,重定向到一个URL....显示用于创建对象表单视图,通过验证错误信息重新显示视图,并且保存对象....显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用对象模型自动生成表单(除非手动制定表单).

3.2K10

Django实战篇-论坛话题视图

上一节注册中,使用了 form 表单 标签中,定义了 method 属性告诉浏览器想如何与服务器通信。...GET 用于从服务器请求数据,每当点击了一个链接或者直接在浏览器中输入一个网址时,就创建了一个 GET 请求。 POST 用于想更改服务器上数据,每次发送数据给服务器都会导致资源状态变化。...Django 使用 CSRF Token 保护所有的 POST 请求,这是避免外部站点或者应用程序向服务器应用程序提交数据安全措施。...基于通用视图 from django.views.generic import UpdateView, ListView ① 主页 class BoardListView(ListView):...@login_required def new_topic(request, pk): board = get_object_or_404(Board, pk=pk) # 涉及到内容填写

66230

使用React hooks处理复杂表单状态数据

Hooks允许我们创建更小,可组合,可重用,更易管理React组件。 您可能正在使用Hooks一个用例是:使用useState或useReducer管理表单状态。...但是,现在reducer更新参数中如果有回调函数,则不能基于当前状态计算状态,因为当前state没有传递给回调函数作为参数。就像我们useState一样: ?...useState中更新函数可以基于prev参数计算状态 另外,如何更新嵌套状态如address.addressLine1,address.pinCode。...字符串形式中,例如:'address.pinCode'或表示路径['address','pinCode']数组。 我们如何使用此类路径表示来更新对象嵌套字段?...immer中produce函数将对象作为其第一个参数进行处理,我们例子中是当前状态,它第二个参数是一个函数,它接收对象草稿副本以进行mutate,无论你在这个函数内修改了什么草稿状态,是副本上完成

3.3K20

基于reactvue搭建一个通用表单管理配置平台

以上介绍更多是为了让大家理解笔者设计这套平台基本背景,我们还可以举个更实际例子就是金数据或者问卷星表单配置模式,用户可以管理后台定制自己表单,并生成一个可访问链接来向目标用户发放问卷,填写信息...草稿管理 草稿箱设计目的是方便使用配置表单过程中不确定是否符合需求或者由于某种临时性举动而无法继续配置,这个时候可以将以配置好内容存入草稿箱,下次继续编辑,所以笔者专门设计了草稿箱管理列表,一旦用户存在草稿...该方案已被笔者很多子系统使用,效果还是非常好。 当然基于该平台甚至能直接配置小型宣传网站,还有更多想象空间,期待大家去挖掘。...基础表单物料 基础表单物料主要是为了用户选择自定义表单控件使用,我们常用表单动态渲染有map循环+条件判断和单层map+对象法,前者如果要渲染一个动态表单,可能实现如下: { list.map...: 当我们要添加一个表单项时,我们就可以左边预览操作区看到添加项,并可以基于表单编辑生成器来编辑表单字段。

1.3K10

python-Django-URL 路由(二)

第一个视图函数是post_create,它允许用户创建博客文章。...如果请求方法是POST,视图函数将获取用户提交文章标题和内容,并创建一个Post对象,然后将用户重定向到新创建文章详细页面。...视图函数获取文章slug,并使用get_object_or_404函数从数据库中获取文章对象。然后,视图函数将文章对象传递给包含文章详细信息HTML模板。...如果请求方法是GET,视图函数将渲染一个包含编辑现有文章表单HTML模板。 最后一个视图函数是PostList,它显示所有博客文章列表,并允许用户创建博客文章。...这个视图函数使用Django通用视图CreateView来处理创建新文章表单,然后重定向到post_list视图函数,这个视图函数将渲染一个包含所有文章列表HTML模板。

80620

视图 vs. 函数视图

阅读本篇之前,请记住一点「基于视图不会替代基于函数视图」. 介绍 无论是视图还是基于函数视图, 最终绑定到 URL Conf 都是函数. 为什么这么说?...这个是一大优点. 基于视图例子 举例创建一个基于视图,分别处理不同 HTTP Method ....基于通用视图(GV) Django 引入了基于通用视图, 来处理 web 常见用例需求, 比如创建对象表单处理,列表视图,分页,归档视图等....又假如你要实现一个复杂请求, 如一次处理多个表单基于函数视图灵活性将更好为你服务....结论 我觉得如果是初学者在做线上项目,不了解面向对象时适用函数式编程是个好选择,无论是对于以后维护还是开发阶段,都能 hold 住。

2.4K10

Vue工程化

() // 清空表单 this.itemName= '' this.itemPrice='' }, updateView(){ // 更新图表...结合数据,进行渲染 v-for 消费统计 —> 计算属性 2.添加功能 收集表单数据 v-model,使用指令修饰符处理数据 给添加按钮注册点击事件,对输入内容做非空判断,发送请求 请求成功后,对文本框内容进行清空...创建vue实例 new Vue({ // render: h => h(App), //上述完整写法 render: (createElement) =>{ //基于App构建元素结构...- 局部组件 1.特点: 只能在注册组件内使用 2.步骤: 创建.vue文件(三个组成部分) 使用组件内先导入再注册,最后使用 3.使用方式: 当成html标签使用即可 4...这里是Foot 普通组件注册使用-全局注册 1.特点: 全局注册组件,项目的任何组件中都能使用(相当于工具组件) 2.步骤 创建.vue

10210

能不能手写Vue响应式?前端面试进阶

为了方便 模拟视图更新,这里创建了一个函数 updateView ,当数据更新时,调用 updateView ,模拟进行了视图更新( Vue 中表现为 template 模板中引用了该变量值 DOM...元素变化)// 验证更新是否触发function updateView(){ console.log('视图更新')}2、defineReactive创建函数 defineReactive ,对...Vue.set使用 Vue 过程中,我们或许都有过这样子经历, data 中定义了一个对象,然后程序执行过程中给他动态添加了属性,然后对当我们对该新增属性进行值更新时并没有触发视图更新,作为...:创建对象,原型指向该对象undefinedconst arrProperty = Object.create(oldArrayProperty)undefined第三步:重写该对象方法undefinedarrProperty.push...= Array.prototype// 创建对象,原型指向oldArrayPropertyconst arrProperty = Object.create(oldArrayProperty)//

58920

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

创建基于表单页面的方法几乎与前面创建网页一样:定义 一个URL,编写一个视图函数并编写一个模板。一个主要差别是,需要导入包含表单模块 forms.py。 1....Django中,创建表单最简单方式是使用ModelForm,它根据我们第18章定义模型中 信息自动创建表单。...最简单ModelForm版本只包含一个内嵌Meta,它告诉Django根据哪个模型创建表单,以 及表单中包含哪些字段。...还有一些其他类型请求,但这个项目没有使用。 函数new_topic()将请求对象作为参数。用户初次请求该网页时,其浏览器将发送GET请求; 用户填写并提交表单时,其浏览器将发送POST请求。...我们使用用户输 入数据(它们存储request.POST中)创建一个TopicForm实例(见3),这样对象form将包含 用户提交信息。

13110

基于django视频点播网站开发-step9-后台视频管理功能

这一讲非常重要,因为你将学习到一些之前没有学过技术,比如大文件上传技术。...个人博客:mypython.me 视频上传 我们先来实现视频上传,视频上传采用是分块上传策略,并用了分块上传库:django_chunked_upload,使用该类库,再配合前端上传js库(jquery.fileupload.js...,视频上传采用是分块上传策略,前端使用是js上传库(jquery.fileupload.js),后端使用是django_chunked_upload,上传逻辑是这样:前端先选择一个文件,通过...中,我们利用Video模型创建了这条视频 class MyChunkedUploadCompleteView(ChunkedUploadCompleteView): model = MyChunkedUpload...编辑对应视图是ClassificationEditView,它实现超级简单,继承UpdateView即可。

1.6K30

能不能手写Vue响应式?前端面试进阶_2023-02-27

为了方便 模拟视图更新,这里创建了一个函数 updateView ,当数据更新时,调用 updateView ,模拟进行了视图更新( Vue 中表现为 template 模板中引用了该变量值 DOM...元素变化) // 验证更新是否触发 function updateView(){ console.log('视图更新') } 2、defineReactive 创建函数 defineReactive...Vue.set 使用 Vue 过程中,我们或许都有过这样子经历, data 中定义了一个对象,然后程序执行过程中给他动态添加了属性,然后对当我们对该新增属性进行值更新时并没有触发视图更新,作为...:创建对象,原型指向该对象undefinedconst arrProperty = Object.create(oldArrayProperty)undefined第三步:重写该对象方法undefinedarrProperty.push...= Array.prototype // 创建对象,原型指向oldArrayProperty const arrProperty = Object.create(oldArrayProperty)

62230

能不能手写Vue响应式?前端面试进阶

为了方便 模拟视图更新,这里创建了一个函数 updateView ,当数据更新时,调用 updateView ,模拟进行了视图更新( Vue 中表现为 template 模板中引用了该变量值 DOM...元素变化)// 验证更新是否触发function updateView(){ console.log('视图更新')}2、defineReactive创建函数 defineReactive ,对...Vue.set使用 Vue 过程中,我们或许都有过这样子经历, data 中定义了一个对象,然后程序执行过程中给他动态添加了属性,然后对当我们对该新增属性进行值更新时并没有触发视图更新,作为...:创建对象,原型指向该对象undefinedconst arrProperty = Object.create(oldArrayProperty)undefined第三步:重写该对象方法undefinedarrProperty.push...= Array.prototype// 创建对象,原型指向oldArrayPropertyconst arrProperty = Object.create(oldArrayProperty)//

57610

【Vuejs】1146- 这些 Vue 技巧你都掌握了吗?

mvvm.png 如何实现 v-model v-model指令用于实现input、select等表单元素双向绑定,是个语法糖。...核心源码 const arrayProto = Array.prototype // 基于数组原型对象创建一个对象 export const arrayMethods = Object.create...Vue 3.x 则不是一个对象,源对象不具备响应式功能。 适用场景:项目中没有大量非父子组件通信时,可以使用 Vue.observable 去替代 eventBus和vuex方案。...$set 如何解决对象新增属性不能响应问题 Vue.$set出现是由于Object.defineProperty局限性:无法检测对象属性新增或删除。...// 基于 vnode 创建整颗 DOM 树并插入到 body 元素下 creatElm( vnode, insertedVnodeQueue

1.6K20

Object.defineProperty也能监听数组变化?

Vue2 时是使用了 Object.defineProperty 监听数据变化,但我查了下 文档,发现 Object.defineProperty 是用来监听对象指定属性变化。...以上就是 Object.defineProperty 基础用法。 深度监听 上面的例子是监听基础对象。但如果对象里还包含对象,这种情况就可以使用递归方式。...我创建了一个 updateView 方法,该方法模拟更新 DOM (类似 Vue操作),但我这里简化成只是输出 “视图更新” 。因为这不是本文重点。...// 创建对象,原形指向 oldArrayProperty,再扩展方法不会影响原型 const arrProto = Object.create(oldArrayProperty); ['push...// 创建对象,原形指向 oldArrayProperty,再扩展方法不会影响原型 const arrProto = Object.create(oldArrayProperty); // arrProto.push

46220

建模与表单动态化设计

不过,真正开始操作之前,我们需要引入一个 Meta Market 概念,即基于元数据字段集合。...接入数据源 最后,在建模体系之外,我们还需要有一种方式,可以接入到系统已有的数据源,或者我们自己创建另外一个系统来为表单系统提供数据源。数据源指当用户使用表单时,可以读取关联对象引用。...上面这张图中,假如我们有一个选项类型字段,意味着用户填写表单时,该字段要从选项中选择,而选项来源可以是我们自己创建,也可以通过选择一个数据源作为选项列表。...当用户创建一个可输入输入框或类似的组件节点时,我们需要将该节点与对应字段予以绑定,而在这个过程中,就需要用户自己去填写字段信息,同时把创建字段放到数据库中。...梳理表单组件 表单组件有4大:控制表单状态组件、表单布局组件、通用数据填写组件、业务特性数据填写组件。不过对于用户而言,就分为两,一是布局组件,一是数据组件。

2.5K11
领券