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

在django中将UpdateView表单与CreateView表单显示在同一页上

在Django中,可以使用UpdateView和CreateView来处理表单的更新和创建操作。要将这两个表单显示在同一页上,可以通过以下步骤实现:

  1. 创建一个继承自UpdateView和CreateView的自定义视图类,命名为FormView。
  2. 在FormView中,需要指定model属性为要操作的模型,form_class属性为表单类,template_name属性为渲染表单的模板。
  3. 在FormView中,需要重写get_context_data()方法,将UpdateView和CreateView的表单实例都添加到上下文中,以便在模板中进行渲染。
  4. 在模板中,可以使用form.as_p或form.as_table等方法来渲染表单的字段。
  5. 在模板中,可以使用if语句判断表单是更新还是创建操作,从而显示不同的按钮或链接。

下面是一个示例代码:

代码语言:python
复制
from django.views.generic import UpdateView, CreateView
from django.urls import reverse_lazy
from .models import YourModel
from .forms import YourForm

class FormView(UpdateView, CreateView):
    model = YourModel
    form_class = YourForm
    template_name = 'your_template.html'
    success_url = reverse_lazy('your_success_url')

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['update_form'] = self.get_form(self.get_form_class())
        context['create_form'] = self.get_form(self.get_form_class())
        return context

在上面的示例中,需要替换"YourModel"为你要操作的模型,"YourForm"为你的表单类,"your_template.html"为你的模板文件名,"your_success_url"为操作成功后的重定向URL。

在模板文件"your_template.html"中,可以使用以下代码来渲染表单:

代码语言:html
复制
<form method="post">
  {% csrf_token %}
  {{ update_form.as_p }}
  {{ create_form.as_p }}
  <input type="submit" value="Save">
</form>

这样就可以在同一页上显示UpdateView和CreateView的表单了。

注意:以上代码仅为示例,实际使用时需要根据自己的项目结构和需求进行适当的修改。

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

相关·内容

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

Django HTML template 一般网站中使用模板显示 ListView 显示对象列表 文章列表 DetailView 显示对象详情 文章详细 FormView 提交From 网站联系我们或...emai订阅form CreateView 创建对象 创建新文章 UpdateView 更新对象 修改文章 DeleteView 删除对象 删除文章 Generic date views 显示一段时间内的对象...该视图用法CreateView基本相同,仅在BaseUpdateView中对get()和post()的内部实现有区别. 6.DeleteView ?...显示确认页面并删除现有对象的视图.仅当请求方法为POST时,才会删除给定的内容.如果此视图是通过GET提取的,它将显示一个确认页面,其中包含POST到同一网址的表单....可以直接用Django通用视图里的UpdateViewCreateView

3.2K10

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

使用基于类的视图处理表单 表单的处理通常有3 个步骤: 初始的的GET (空白或预填充的表单) 带有非法数据的POST(通常重新显示表单和错误信息) 带有合法数据的POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复的样本代码...(参见视图中使用表单)。...注意这里我们是如何配置通用的基于类的视图的;我们自己没有写任何逻辑: #views.py from django.views.generic.edit import CreateView, UpdateView...fields 属性的工作方式ModelForm 的内部Meta类的fields 属性相同。...Changed in Django 1.8: 省略fields 属性以前是允许的,但是导致表单带有模型的所有字段。

1.8K20

Django源码学习-8-ListView&DetailView通用视图

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...Django的通用视图可以减少开发的单调性,它抽象出一些视图开发中常用的代码和模式,这样就可以无需编写大量代码的情况下,快速编写出常用的视图函数。 ?...import DetailView from django.views.generic.edit import ( CreateView, DeleteView, FormView, UpdateView...pass ① ListView:显示对象列表 用于展示一个 Model 里面的所有对象,也可以是其子集 (queryset) ,支持分页。...② DetailView:显示一个对象的某个属性详细信息 用于显示某一 Model 中的一个 object 的详细信息。

1.4K10

django admin详情表单显示中添加自定义控件的实现

开发中有需求详情显示里外键字段内容,并且添加按钮弹窗内容,以及按钮跳转内容。...form自带了widget控件,比如我想在里面添加一个按钮,记录用户的积分消耗情况,那么就可以类名下直接添加: from django.forms import widgets class AForm...这个时候我们就可以详情内看见button了,但是相对应的,detail的表单中添加后,add的表单中也会出现一个button,这个不是我们想要的,所以就要想办法让button只存在于detail界面中...value]处添加我们想要获取的值,并在attrs中将type改为hidden,可以看到我调用了一个self.base_fields[‘point’]这个对象就是我们创建的button按钮。...刷新页面即可; 以上这篇django admin详情表单显示中添加自定义控件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.9K20

django中ModelForm多表单组合的解决方案

书归正传,web服务允许用户输入,基本要靠表单。...所以,基本表单的功能看BaseForm已经足够了。 2、从模型创建表单 django对于MVC中的CM间的映射是非常体贴的,集中体现中Model模型中(比如模型的权限用户认证)。...3、通用视图 django.views.generic.ListView和django.views.generic.edit下的CreateView, UpdateView, DeleteView都是通用视图...ContextMixincontext上下文中加入’view’元素,值为self实例。 ProcessFormViewGET请求渲染表单POST请求上解析form到表单实例。...django的模型中就体现为ForeignKey、ManyToManyField或者OneToOneField。而在业务逻辑,需要体现为一张表单,对应着数据库里的多张表。

3.3K20

python-Django-URL 路由(二)

在这个示例中,我们将这些视图函数定义名为views.py的文件中:: from django.shortcuts import render, get_object_or_404, redirect...from django.views.generic.edit import CreateView, UpdateView from django.contrib.auth.decorators import...如果请求方法是GET,视图函数将渲染一个包含创建新文章表单的HTML模板。 第二个视图函数是post_detail,它显示单个博客文章的详细信息。...如果请求方法是GET,视图函数将渲染一个包含编辑现有文章表单的HTML模板。 最后一个视图函数是PostList,它显示所有博客文章的列表,并允许用户创建新的博客文章。...这个视图函数使用Django的通用视图类CreateView来处理创建新文章的表单,然后重定向到post_list视图函数,这个视图函数将渲染一个包含所有文章的列表的HTML模板。

80420

Django模板中使用消息message框架

web应用程序中,通常需要在处理表单或其他类型的用户输入之后向用户显示一次性通知消息(也称为“flash message”)。...内置级别,可以从django.contrib.messages直接导入包括: 变量 用途 DEBUG 将在生产部署中被忽略(或删除)的开发相关的消息 INFO 为用户提供信息消息 SUCCESS 行为成功消息...(cleaned_data):cleaned_data是从用于字符串格式化的表单中清除的数据,例如 from django.contrib.messages.views import SuccessMessageMixin...from django.views.generic.edit import CreateView from myapp.models import Author class AuthorCreate...中使用message form_valid定义消息添加 基于类的视图可以定义验证表单的函数中 @method_decorator(login_required, name='dispatch') class

2.8K20

django 1.8 官方文档翻译: 3-4-5 内建基于类的视图的API

基础视图 View TemplateView RedirectView 通用的显示视图 DetailView ListView 通用的编辑视图 FormView CreateView UpdateView...传递给视图的参数视图的每个实例之间共享。...如果你真这么做而且对共享的对象做过修改,某个用户的行为可能对后面访问同一个视图的用户产生影响。 传递给as_view() 的参数将赋值给服务请求的实例。...Django 的通用视图建立基础视图之上,用于作为经常用到的功能的快捷方式,例如显示对象的详细信息。它们提炼视图开发中常见的风格和模式并将它们抽象,这样你可以快速编写常见的视图而不用重复你自己。...Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。

82920

马哥金牌分享 | 十分钟学会用Django快速搭建一个blog

并于2005年7月BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 Django是一个基于MVC构造的框架。...但是Django中,控制器接受用户输入的部分由框架自行处理,所以Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。...1.1 Django的结构模型 层次 职责 模型(Model)数据存取层 处理数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。...视图(View)表现层 处理表相关的决定: 如何在页面或其他类型文档中进行显示。 模板(Template),业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型模板的桥梁。...的视图 Django有很多的优秀的视图: View DetailView ListView FormView CreateView DeleteView UpdateView 我们的blog里面暂时只用到了

2.4K51

基于django的视频点播网站开发-step6-个人中心功能

个人资料 这里主要是对个人资料进行编辑,先显示用户原有的信息,然后用户即可对其进行修改并保存,对于编辑功能,django有自己的解决方案,即通过通用视图类UpdateView对模型进行更改。...需要我们做的就是users/urls.py中添加个人资料的路由, path('profile//', views.ProfileView.as_view(), name='profile...当更新成功后,django会回调get_success_url来将结果告诉模板,因此我们可以get_success_url里面做一些定制的工作,我们可以传一些自己的参数。...self.request, "保存成功") return reverse('users:subscribe', kwargs={'pk': self.request.user.pk}) 反馈建议...我们直接贴出FeedbackView的代码 class FeedbackView(LoginRequiredMixin, generic.CreateView): model = Feedback

1.1K00

Django数据库操作之saveupdate的使用

例如数据更新操作,对单条记录,可以使用save或者是update两种方式 Django工程下的settings.py下将log设置为DEBUG,即可查看save和update分别执行了哪些SQL语句...从使用情境看,update更加适用于批量数据更新,而save则更适合当然也只适合做单条记录的数据更新操作了。 使用Django的数据模型操作数据库时,了解这些底层的SQL操作很有必要。...补充知识:如何理解Django的save(commit=False)方法和save_m2m()方法 什么时候使用save(commit=False)方法,save_m2m方法以及如何使用是Django表单...from django.views.generic.edit import CreateView from .models import Article from django.forms import...数据库操作之saveupdate的使用就是小编分享给大家的全部内容了,希望能给大家一个参考。

2.7K10

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

使用表单 关于这文档 这文档简单介绍Web 表单的基本概念和它们Django 中是如何处理的。关于表单API 某方面的细节,请参见表单 API、表单的字段和表单和字段的检验。...我们必须自己模板中提供它们。 视图 发送给Django 网站的表单数据通过一个视图处理,一般和发布这个表单的是同一个视图。这允许我们重用一些相同的逻辑。...然而,因为CSRF 防护模板中不是表单直接捆绑在一起的,这个标签在这篇文档的以下示例中将省略。...{{ field.html_name }} 输入元素的name 属性中将使用的名称。它将考虑到表单的前缀。 {{ field.help_text }} 该字段关联的帮助文档。...Django 提供两个表单方法,它们允许你独立地隐藏的和可见的字段迭代:hidden_fields() 和visible_fields()。

4.2K20

Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

forms.ModelForm): class Meta: model = Article exclude = () 视图和 URLConf #views.py class ArticleCreateView(CreateView...你模板中稍微增加几行 js 的代码,如下所示: <form action="" method="post" enctype="multipart/form-data" {{ form.as_p...如果你模型中 DateTimeField 的字段名为 visit_date,你只需为 id_visit_date 再生成一个实例即可。...Django表单会默认为每个输入字段 id 加上 id_的前缀。...总结 到此这篇关于Django 如何使用日期时间选择器规范用户的时间输入的文章就介绍到这了,更多相关 Django 如何使用日期时间选择器规范用户的时间输入内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持

5.9K20
领券