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

浅谈django 模型类使用save()方法的好处与注意事项

__class__, self).save(*args, **kwargs) 在django模型类里,如果有些字段的值是需要动态生成的,那么就在模型类里同样添加上对应的字段,并写上对应的方法, 然后调用...save()方法,把自定义的方法的结果返回给那个字段,然后保存起来。...,) 尤其是需要记录消费信息时,会员的身份变化时,对应的折扣不一样,当会员身份升级时,如果消费记录只是在list页面用方法展示结果,没有使用save()将其填充到 对应的字段,就会使消费记录因为关联性而发生希望的变动...() 上面的SeatForm()是我们在与views.py同级目录下创建的forms.py forms.py class SeatForm(forms.Form): #注意这里的date和time需要与前端的命名要一直...以上这篇浅谈django 模型类使用save()方法的好处与注意事项就是小编分享给大家的全部内容了,希望能给大家一个参考。

2.5K21
您找到你想要的搜索结果了吗?
是的
没有找到

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

补充知识:如何理解Djangosave(commit=False)方法save_m2m()方法 什么时候使用save(commit=False)方法save_m2m方法以及如何使用是Django表单...如果你指定commit=False,那么save方法不会理解将表单数据存储到数据库,而是给你返回一个当前对象。这时你可以添加表单以外的额外数据,再一起存储。...我们创建了一个叫文章Article的模型,里面包含title, body和作者author等多个字段,其中author字段非空null=False。...我们由Article模型创建了一个ArticleForm表单,可以让用户发表新文章,但是我们故意把author字段除外了,因为我们希望用户编辑作者。...所以我们先通过 article = form.save(commit=False)创建article实例,此时让Django先不要发送数据到数据库,等待我们把author添加好后,再把数据一起存储到数据库中

2.7K10

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

2、从模型创建表单 django对于MVC中的C与M间的映射是非常体贴的,集中体现中Model模型中(比如模型的权限与用户认证)。...中告诉django需要在表单中创建哪些字段。...传instance参数,则会新构造model对象               self.instance = opts.model()               object_data = {}  ...比如CreateView就会由django自动的把页面上POST出的form数据解析到model生成的表单(或者form_calss指定的ModelForm类型表单),同时调用表单的save方法将数据添加到模型对应的数据库表中...self.get_context_data()           #按照四条数据库记录的顺序依次的创建(调用save方法)、主键赋到下一条记录的外键中、下一次记录创建save

3.3K20

37.Django1.11.6文档

基于这个原因,Django 提供一个辅助类来让你可以从Django模型创建Form。...", } } save()方法 每个ModelForm还具有一个save()方法。 这个方法根据表单绑定的数据创建并保存数据库对象。 ...因此,当创建用户时,它们不会自动创建,但可以使用django.db.models.signals.post_save来适当地创建或更新相关模型。 使用相关模型会产生其他查询或联接来检索相关数据。 ...如果save_as是True,“保存并添加另一个”将被替换为创建对象(使用新ID)而不是更新的“另存为”按钮现有的对象。 默认情况下,save_as 设置为False。...它们包含一些有用的通知: django.db.models.signals.pre_save&django.db.models.signals.post_save模型 save()方法调用之前或之后发送

24.2K80

浅谈Python Django框架

Django是一个开源的Web应用框架,由Python写成。 Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。 ...7) settings.py:Django配置文件,如 DEBUG 的开关,静态文件的位置等。...{% include "test.html" %}   7、Django模型 Django 对各种数据库提供了很好的支持,Django 为数据库提供了统一的调用API,可以根据业务需求选择不同的数据库。...2) 定义模型 ① 创建APP: Django规定,如果要使用模型,必须要创建一个app,使用以下命令创建一个app:python manage.py startapp TestModel。...表单 1) Get方法 ① 创建一个 search.py 文件,用于接收用户的请求: [python] view plain copy from django.http import HttpResponse

2.2K20

Django模型(数据库)及Django Query常用方法

Django模型(数据库)及Django Query常用方法 Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL,...是安装Django后多出的一个命令,并不是运行的当前目录下的django-admin.py(当前目录下也没有),但创建项目会生成一个 manage.py 文件。...models.IntegerField() def __unicode__(self): # __str__ on Python 3 return self.headline QuerySet 创建对象方法..." twz.save() # 方法 4,首先尝试获取,不存在就创建,可以防止重复 Author.objects.get_or_create(name="Tom", email="tom@163.com...") # 返回值(object, True/False) 备注:前三种方法返回的都是对应的 object,最后一种方法返回的是一个元组,(object, True/False),创建时返回 True,

2.5K40

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

作者:Kuky_xs 博客:https://www.jianshu.com/p/8cdf099e974f 前言 《django入门:环境及项目搭建》 《django入门:数据模型》 《django入门:...这一部分将介绍 django 自带的后台管理系统,以及如何通过表单提交数据 django admin 后台管理系统 在后台管理系统注册创建模型 from django.contrib import admin...(): # commit=False 表示只生成模型类的实例,马上保存到数据库 post = form.save(commit=Flase)...# 将作者和文章进行关联 post.author = request.user # 通过调用 save() 方法将数据存入数据库...提交表单错误 不存在对应模型(POST 方式) 1.在 forms.py 中创建表单 # 假设有个信息反馈的表单 class ContractForm(forms.Form): subject

2.8K20

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

文章目录 一、候选人登录注册 二、创建建立模型 三、用户在线投递简历 1)创建视图与模板 2) 优化表单细节 让简历进入到面试流程 一、候选人登录注册 方法一:使用django-registraion-reduex...(建议), 相关配置 方法二:allauth 集成(建议) ✨【Django | allauth】登录_注册_邮箱验证_密码邮箱重置✨ ✨【Django | allauth】useprofile...用户模型扩展✨ ✨【Django | allauth】重写allauth重置密码方法✨ 二、创建建立模型 在jobs应用中添加如下模型 class Resume(models.Model):...form, change) 4.效果 三、用户在线投递简历 1)创建视图与模板 创建类视图(与之前的函数不一样) 这里的类试图有很多写好的基类视图,如detailview,listview等...(self, form): # 生成对象直接提交) self.object = form.save(commit=False) # 添加表单中所没有的数据 self.object.applicant

87410

Django | allauth】useprofile 用户模型扩展

include('allauth.urls')), path('accounts/', include('userprofile.urls')) ] 在userprofile应用的models.py 创建扩展模型...__str__()) 在 admin 文件 注册UseProfile模型 from django.contrib import admin from userprofile.models import...user对象,并没有创建userprofile并自动与扩展模型userprofile 进行关联,所以需要重写注册表单,并修改默认注册表单配置,注册时两个对象一起被创建,并存储到数据库中。...图片 原理: allauth应用 根据setting中的 account_signup_form_class的值(路由)引入该表单类,将该表单类的方法 siginup 替换掉原生注册表单# 自定义表单...['tel'] user_profile.campus = form.cleaned_data['campus'] user_profile.save()

1.1K10

Form和ModelForm组件

举个例子,你也许会有个Book 模型,并且你还想创建一个form表单用来添加和编辑书籍信息到这个模型中。 在这种情况下,在form表单中定义字段将是冗余的,因为我们已经在模型中定义了那些字段。...基于这个原因,Django 提供一个辅助类来让我们可以从Django模型创建Form,这就是ModelForm。 modelForm定义 form与model的终极结合。...如果我们不重写具体字段并设置validators属性的化,ModelForm是按照模型中字段的validators来校验的。 save()方法 每个ModelForm还具有一个save()方法。...这个方法根据表单绑定的数据创建并保存数据库对象。 ModelForm的子类可以接受现有的模型实例作为关键字参数instance;如果提供此功能,则save()将更新该实例。...根据POST数据创建一个新的form对象 >>> form_obj = BookForm(request.POST) # 创建书籍对象 >>> new_ book = form_obj.save()

5K10

Django | allauth】useprofile 用户模型扩展

include('allauth.urls')), path('accounts/', include('userprofile.urls'))]在userprofile应用的models.py 创建扩展模型...__str__())在 admin 文件 注册UseProfile模型from django.contrib import adminfrom userprofile.models import UserProfile...user对象,并没有创建userprofile并自动与扩展模型userprofile 进行关联,所以需要重写注册表单,并修改默认注册表单配置,注册时两个对象一起被创建,并存储到数据库中。...图片原理: allauth应用 根据setting中的 account_signup_form_class的值(路由)引入该表单类,将该表单类的方法 siginup 替换掉原生注册表单# 自定义表单class...SignupForm(forms.Form): # 对某方法进行重写,注意名字 def signup(self, request, user): user_profile =

16410
领券