最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在django view中給form傳入?yún)?shù)的例子

 更新時(shí)間:2019年07月19日 08:41:19   作者:獅子不咬人  
今天小編就為大家分享一篇在django view中給form傳入?yún)?shù)的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

在django的form表單會出現(xiàn),在form的驗(yàn)證或者保存時(shí)需要非form中的field的信息參數(shù)。例如在對操作進(jìn)行記錄,我們需要根據(jù)將記錄的操作人設(shè)置為當(dāng)前的用戶,所以在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='操作')

我們創(chuàng)建一個(gè)record模型,里面有user以及operate2個(gè)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方便我們對將表單直接轉(zhuǎn)化為model并保存。我們在__init__方法中將傳入的user保存為參數(shù),并在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的參數(shù)變量,這樣form中就可以獲得這一參數(shù)。

以上這篇在django view中給form傳入?yún)?shù)的例子就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

循化| 云南省| 平武县| 疏附县| 马边| 渝中区| 洛隆县| 丰城市| 普安县| 云霄县| 盐池县| 六安市| 鸡西市| 申扎县| 张家港市| 阳原县| 灯塔市| 新丰县| 尚义县| 海城市| 会理县| 佛教| 柘荣县| 铜梁县| 丁青县| 永福县| 湟中县| 察哈| 白山市| 平阳县| 探索| 藁城市| 大名县| 左贡县| 金门县| 潍坊市| 永兴县| 嘉鱼县| 潢川县| 太康县| 河北区|