首页
学习
活动
专区
工具
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
代码运行次数:0
复制
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通用视图里的UpdateView和CreateView。

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.9K20

    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中ModelForm多表单组合的解决方案

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

    3.4K20

    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模板。

    82720

    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.9K20

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

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

    85620

    马哥金牌分享 | 十分钟学会用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.2K00

    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.3K20

    【Django | 开发】面试招聘信息网站(用户登录注册&投在线递简历)

    文章目录 一、候选人登录注册 二、创建建立模型 三、用户在线投递简历 1)创建视图与模板 2) 优化表单细节 让简历进入到面试流程 一、候选人登录注册 方法一:使用django-registraion-reduex...(不建议), 相关配置 方法二:allauth 集成(建议) ✨【Django | allauth】登录_注册_邮箱验证_密码邮箱重置✨ ✨【Django | allauth】useprofile...用户模型扩展✨ ✨【Django | allauth】重写allauth重置密码方法✨ 二、创建建立模型 在jobs应用中添加如下模型 class Resume(models.Model):..., CreateView): """ 简历视图 """ template_name = 'resume_form.html' model = Resume success_url = reverse...这里我们工作的城市 和 职位并没有带到表单中 解决: 在类视图写上 初始化方法get_initial # 类视图 class ResumeCreateView(LoginRequiredMixin,

    90210

    37.Django1.11.6文档

    在此示例中,url和title字段将显示在同一行上,content字段将在其自己的行下显示: class FlatPageAdmin(admin.ModelAdmin): fields = ((...如果模型上的相应字段有选择集,则提供给表单的选项必须是这些选择的有效子集,否则,在保存模型本身之前验证模型本身时,表单提交将失败并显示ValidationError 。...ModelAdmin.has_module_permission(request) 如果在管理索引页上显示模块并允许访问模块的索引页,则应返回True,否则False。 ...覆盖此方法以编程方式确定最小内联表单数。 例如,这可以基于模型实例(作为关键字参数obj传递)。 使用具有两个或多个外键的模型与同一个父模型 有时可能有多个外键到同一个模型。 ...Django在定义关系(在这种情况下,Group)的模型上显示多对多字段的管理窗口小部件。

    24.4K80

    django 1.8 官方文档翻译: 1-2-2 编写你的第一个Django应用,第2部分

    使 poll 应用的数据在管理网站中可编辑 但是 poll 应用在哪? 它可是没有在管理网站的首页上显示啊。 只需要做一件事:我们需要告诉管理网站 Poll 对象要有一个管理界面。...探索管理功能 现在我们已经注册了 Poll ,那 Django 就知道了要在管理网站的首页上显示出来: 点击 “Polls” 。现在你在 polls 的 “更改列表” 页。...Save and add another – 保存更改并载入当前对象类型的新的空白表单。 Delete – 显示删除确认页。...如果 “Date published” 的值与你在第一部分教程时创建的 poll 的时间不符,这可能 意味着你忘记了将 TIME_ZONE 设置成正确的值了。...这样的话你就需要在注册对象 时告诉 Django 对应的配置。 让我们来看看如何在编辑表单上给字段重新排序。

    2.5K40
    领券