在django view中給form傳入?yún)?shù)的例子
在django的form表單會(huì)出現(xiàn),在form的驗(yàn)證或者保存時(shí)需要非form中的field的信息參數(shù)。例如在對(duì)操作進(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方便我們對(duì)將表單直接轉(zhuǎn)化為model并保存。我們?cè)赺_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
...
我們?cè)趃et_form_kwargs傳入user的參數(shù)變量,這樣form中就可以獲得這一參數(shù)。
以上這篇在django view中給form傳入?yún)?shù)的例子就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python利用PyQt5設(shè)計(jì)鼠標(biāo)顯示形狀
不知道大家有沒(méi)有發(fā)現(xiàn),我們?cè)诰W(wǎng)頁(yè)移動(dòng)鼠標(biāo)時(shí),不同的網(wǎng)頁(yè)會(huì)有不同的鼠標(biāo)移動(dòng)特效,通過(guò)移動(dòng)鼠標(biāo),會(huì)形成類似蜘蛛網(wǎng)等等的特效,本文將用PyQt5實(shí)現(xiàn)這一特效,需要的可以參考一下2024-07-07
Python數(shù)據(jù)可視化:餅狀圖的實(shí)例講解
今天小編就為大家分享一篇Python數(shù)據(jù)可視化:餅狀圖的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟
這篇文章主要介紹了Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)的操作步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
解決 jupyter notebook 回車換兩行問(wèn)題
這篇文章主要介紹了解決 jupyter notebook 回車換兩行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python 基于win32com客戶端實(shí)現(xiàn)Excel操作的詳細(xì)過(guò)程
這篇文章主要介紹了Python 基于win32com客戶端實(shí)現(xiàn)Excel操作的詳細(xì)過(guò)程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
python nohup 實(shí)現(xiàn)遠(yuǎn)程運(yùn)行不宕機(jī)操作
這篇文章主要介紹了python nohup 實(shí)現(xiàn)遠(yuǎn)程運(yùn)行不宕機(jī)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
使用Python實(shí)現(xiàn)一個(gè)蔡徐坤大戰(zhàn)籃球的小游戲(推薦)
這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)蔡徐坤大戰(zhàn)籃球的小游戲,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12

