在django view中给form传入参数的例子


Posted in Python onJuly 19, 2019

在django的form表单会出现,在form的验证或者保存时需要非form中的field的信息参数。例如在对操作进行记录,我们需要根据将记录的操作人设置为当前的用户,所以在view中我们需要将user的信息传入到form中,方便在form.save()d的方法使用。

models

# models.py

from django.db import models
from django.contrib.auth.models import User


class Record(models.Model):

 user = models.ForeignKey(User, on_delete=models.CASADE, verbose_name='操作者')
 operate = models.CharField(max_length=20, verbose_name='操作')

我们创建一个record模型,里面有user以及operate2个field。

forms

# forms.py

from django import forms

from .models import Record


class RecordForm(forms.ModelForm):

 def __init__(self, *args, **kwargs):
  self.user = kwargs.pop('user')
  super().__init__(*args, **kwargs)

 def save(self, commit=True):
  instance = super().save(commit=False)
  instance.user = self.user
  if commit:
   instance.save()
  return instance

 class Meta:
  model = Record
  fields = ['operate', ]

在form中我们首先使用ModelForm方便我们对将表单直接转化为model并保存。我们在__init__方法中将传入的user保存为参数,并在save方法中取出并使用。

views

# views.py

from django.views.generic import FormView

from .forms import RecordForm


class RecordView(FormView):
 form_class = RecordForm

 def get_form_kwargs(self):
  kwargs = super().get_form_kwargs()
  kwargs.update({
   'user': self.request.user,
  })
  return kwargs

 ...

我们在get_form_kwargs传入user的参数变量,这样form中就可以获得这一参数。

以上这篇在django view中给form传入参数的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python输出当前目录下index.html文件路径的方法
Apr 28 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
python八皇后问题的解决方法
Sep 27 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
如何使用python把ppt转换成pdf
Jun 29 Python
Django基础知识 web框架的本质详解
Jul 18 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
Mar 09 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
详解torch.Tensor的4种乘法
Sep 03 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
使用Python制作表情包实现换脸功能
Jul 19 #Python
解决Django一个表单对应多个按钮的问题
Jul 18 #Python
Django工程的分层结构详解
Jul 18 #Python
django mysql数据库及图片上传接口详解
Jul 18 #Python
解决django中ModelForm多表单组合的问题
Jul 18 #Python
浅谈Django中view对数据库的调用方法
Jul 18 #Python
django-rest-framework解析请求参数过程详解
Jul 18 #Python
You might like
PHP中Memcache操作类及用法实例
2014/12/12 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
wxPython实现窗口用图片做背景
2018/04/25 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
自我鉴定怎么写
2013/12/05 职场文书
团队经理竞聘书
2014/03/31 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
低碳环保演讲稿
2014/08/28 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
大学生个人学年总结
2015/02/15 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android