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

在Django中保存ModelForm后获取主键

在Django中,保存ModelForm后获取主键的方法是使用实例的pk属性。以下是一个示例:

代码语言:python
代码运行次数:0
复制
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .models import MyModel
from .forms import MyModelForm

def create_view(request):
    if request.method == 'POST':
        form = MyModelForm(request.POST)
        if form.is_valid():
            my_model = form.save()
            # 获取主键
            primary_key = my_model.pk
            return HttpResponseRedirect('/success/')
    else:
        form = MyModelForm()
    return render(request, 'create.html', {'form': form})

在这个示例中,我们首先检查请求是否为POST请求。如果是,我们将表单数据绑定到MyModelForm实例。如果表单有效,我们将其保存到数据库中,并使用pk属性获取主键。最后,我们将用户重定向到成功页面。如果请求不是POST请求,我们将创建一个空的表单并将其传递给模板。

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

相关·内容

浅谈laravel-admin form的数据,提交,保存前,获取并进行编辑

有一个这样的需求: 当商品设置为立即上架时,通过审核就进入上架状态,当设置为保存时,通过审核就进入未上架状态。...所以,需要在保存前根据提交的审核状态和设置的方式得到商品状态再保存,而通过$form- model()- attribute_name只能获取提交的值,不能更改。...Google之后发现了已经有解决方案:可以修改提交表单时的逻辑吗 #375 模型添加如下方法: public static function boot() { parent::boot();...static::saving(function ($model) { // 从$model取出数据并进行处理 }); } 以上这篇浅谈laravel-admin form的数据...,提交,保存前,获取并进行编辑就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.2K62
  • 浅谈laravel-admin form的数据,提交,保存前,获取并进行编辑

    有一个这样的需求: 当商品设置为立即上架时,通过审核就进入上架状态,当设置为保存时,通过审核就进入未上架状态。...所以,需要在保存前根据提交的审核状态和设置的方式得到商品状态再保存,而通过$form->model()->attribute_name只能获取提交的值,不能更改。...Google之后发现了已经有解决方案:可以修改提交表单时的逻辑吗 #375 模/ /型添加如下方法: public static function boot() { parent::boot()...; static::saving(function ($model) { // 从$model取出数据并进行处理 }); } 以上这篇浅谈laravel-admin form的数据,提交,保存前,...获取并进行编辑就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持/ /。

    3.6K00

    Django 获取已渲染的 HTML 文本

    Django,你可以通过多种方式获取已渲染的HTML文本。这通常取决于你希望在哪个阶段获取HTML文本。下面就是我实际操作遇到的问题,并且通过我日夜奋斗终于找到解决方案。...1、问题背景 Django ,您可能需要将已渲染的 HTML 文本存储模板变量,以便在其他模板中使用。例如,您可能有一个主模板,其中包含内容部分和侧边栏。...2、解决方案有多种方法可以获取已渲染的 HTML 文本。一种方法是使用 render_to_string() 函数。此函数将模板字符串或模板对象作为参数,并返回一个渲染的字符串。...HTTP 响应对象包含渲染的 HTML 文本。最后,您还可以使用 RequestContext 对象来获取已渲染的 HTML 文本。...这些方法可以帮助我们Django获取已渲染的HTML文本,然后我们可以根据需要进行进一步的处理或显示。

    11210

    djangoModelForm多表单组合的解决方案

    fields = ['approvals','manager','name','fund_rource','content','range',]   model告诉django模型是谁,fields..._save_m2m()           else:       #注意,本篇文章主要用到commit=False这个参数,它会返回Model实例,允许我们修改instanceinstance...所以,从模型创建出的表单ModelForm,配合上通用视图,威力巨大!! 4、多个ModelForm一个form里提交 终于可以回到本文的主题了。...)           #从项目表单获取到模型,先把地址的id赋到外键上再保存           project = context['projectForm'].save(commit=False...address和project都设置好保存           contract.address = contractAddress           contract.project = project

    3.4K20

    Django的AutoField字段使用

    Django是一个机智的框架】 默认情况下Djang会为ORM定义的每一张表加上一个自增ID列,并且用这个列来做主键;出于一个MySQL-DBA的工作经历我觉得 Djanog还真是机智;这样么说主要是因为我遇到过许多主从延时的问题...(上传文件的保存路径)/storage=None(存储组件,默认django.core.files.storage.FileSystemStorage) 12、FilePathField:存储文件路径的数据...(上传文件的保存路径)/storage=None(存储组件,默认django.core.files.storage.FileSystemStorage)/width_field=None(上传图片的宽度保存的数据库字段名...Admin以及ModelForm中提供验证url 23、IPAddressField:Django Admin以及ModelForm中提供验证IPV4机制 24、GenericIPAddressField...:Django Admin以及ModelForm中提供验证IPV4和IPV6机制 二、常用关系型数据表处理Field 1、处理一对多关系数据表:使用ForeignKey 2、处理多对多关系数据表:使用ManyToManyField

    6.6K20

    Django学习之八:forms组件【对

    forms组件     Handle (掌控)一个form是非常复杂的工程,需要做很多功能:不同的类型的数据要有不同的渲染;校验数据;获取检验的干净数据,并将数据反序列化为相应数据类型如时间对象;保存传递给处理程序等等...这是modelform非常重要的一点,因为我们得到form正确数据,是要同步到数据库的,我们不可能将数据再一一ORM操作到数据库。...对于普通模式ORM操作时出现了主键等冲突,就会save()操作报错。...这样就提供了一个方式,可以修改对象,再提交到库。还有一种情况,如果有一个manytomany字段,创建对象,建立关系可能需要先构建关联表的数据,才能保存。...答:也是form的FileField对应 那实例化提供了SimpleuploadFile对象,有怎么通过save()保存到对应的数据库表记录呢?

    2.2K30

    Django使用普通表单、Form、以及modelForm操作数据库方式总结

    Django使用普通表单、Form、以及modelForm操作数据库主要应用于增删该查的情景下,流程通用如下,只是实现方式不一样: 进入填写表单页面; 表单页面填写信息,并提交...页面判断填写字段是否合法(使用JavaScript或JQuery实现判断) 前端校验/add/对应的view对数据进行校验以及数据保存 from polls.models import Person...#导入对应model from django.http import HttpResponseRedirecdef addbooktodatabase(request): # 获取参数前端传递的参数...使用插件modelForm表单操作数据库 和方法二的使用表单Form相比,modelForm具有Form中所有的验证钩子,使用djangomodelForm表单不需要重新定义Form,比较方便。...field_classes = None #自定义字段类(也阔以自定义字段) localized_fields = () #本地化,根据settingsTIME_ZONE

    2.7K30

    django创建表单以及表单数据类型和属性

    db_column 数据库字段的列名 default 数据库字段的默认值 primary_key 数据库字段是否为主键 db_index...(Field):字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6 参数: protocol:用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6...Admin以及ModelForm中提供验证 URL SlugField(CharField):字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号...,文件上传到指定目录 参数: upload_to = "" : 上传文件的保存路径 storage = None:存储组件,默认django.core.files.storage.FileSystemStorage...ImageField(FileField):上传图片的高度保存的数据库字段名(字符串) height_field=None:上传图片的宽度保存的数据库字段名(字符串) 五.djamgo只admin中生效的属性

    78630

    Django进阶知识

    Admin以及ModelForm中提供验证机制 IPAddressField(Field) - 字符串类型,Django Admin以及ModelForm中提供验证 IPV4...数据库字段是否为主键 db_index 数据库字段是否可以建立索引 unique 数据库字段是否可以建立唯一索引...Django Admin的错误信息会优先根据Admiin内部的ModelForm错误信息提示,如果都成功,才来检查Model的字段并显示指定错误信息 b....多对多:某表创建一行数据是,有一个可以多选的下拉框 例如:创建用户信息,需要为用户指定多个爱好 一对一:某表创建一行数据时,有一个单选的下拉框(下拉框的内容被用过一次就消失了 例如:原有含10...使用Model和Form时,都需要对字段进行定义并指定类型,通过ModelForm则可以省去From字段的定义 class AdminModelForm(forms.ModelForm):

    3.6K20

    七日Python之路--第十二天(Django Web 开发指南)

    Person.DoesNotExist: raise Http404 或者使用 get_object_or_404 (15)利用 *args / **kwargs #视图函数...def myview(*args, **kwargs): #这样我们就可以使用,args[0]或kwargs['object_id'] 而不需要再记住 URLconf的名称了 ##当然 Django1.6...模板输出context变量时,会隐式的调用unicode方法。如果试图打印没有__unicode__方法的对象,模板是不可见的。...(20)保存 ModelForm 有一个save()方法,可以将信息保存为数据库里的一条记录,然后返回Model对象结果。...当有关联对象时,Django会给表单添加一个额外的方法 save_m2m (21)区别于Model ModelForm的Meta嵌套类允许你定义两个可选属性,fields和exclude

    1.8K20

    django 关于 ModelForm

    ModelForm:大家写表单的时候,会发现表单的Field和模型的Field基本上是一模一样的,而且表单需要验证的数据,也就是我们模型需要保存的。...fields = "__all__"MyForm是继承自forms.ModelForm,然后表单定义了一个Meta类,Meta类中指定了model=Article,以及fields="__all_...exclude = ['category']自定义错误消息:使用ModelForm,因为字段都不是表单定义的,而是模型定义的,因此一些错误消息无法字段定义。..., } }save方法:ModelForm还有save方法,可以验证完成直接调用save方法,就可以将这个数据保存到数据库中了。...比如表单上验证的字段没有包含模型中所有的字段,这时候就可以先创建对象,再根据填充其他字段,把所有字段的值都补充完成,再保存到数据库

    80260
    领券