久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Django在Model保存前記錄日志實(shí)例

瀏覽:198日期:2024-10-06 11:39:44

Django中如何在Model保存前做一定的固定操作,比如寫(xiě)一句日志?

關(guān)鍵詞: 信號(hào)

利用Django的Model的Signal Dispatcher, 通過(guò)django.db.models.signals.pre_save() 方法,在事件發(fā)生前,

發(fā)射

觸發(fā)信號(hào),這一切都被調(diào)度中的receiver方法深藏功與名的保存了。

信號(hào)的處理一般都寫(xiě)在Model中,舉個(gè)例子:

import loggingfrom django.db import modelsfrom django.db.models.signals import pre_savefrom django.dispatch import receiver class Order(models.Model): # ... logger = logging.getLogger(__name__) @receiver(pre_save, sender=Order)def pre_save_handler(sender, **kwargs): # 我們可以在Order這個(gè)Model保存之前盡情調(diào)戲了:) logger.debug('{}'.format(sender, **kwargs)) print ’fuck universe’

這樣應(yīng)該就實(shí)現(xiàn)了題中的要求,類(lèi)似的方法還有比如 pre_init 是在Model實(shí)例之前會(huì)觸發(fā), post_init 在實(shí)例之后觸發(fā),同理就是 pre_save 和 post_save 了。

補(bǔ)充知識(shí):Django models.save()的問(wèn)題

Django views.py 引用models.py進(jìn)行modles.objects.create()然后進(jìn)行.save的問(wèn)題。

我們是不能直接進(jìn)行保存的,提交到數(shù)據(jù)庫(kù)里面的。

EX:

我們這里通過(guò)post獲取到信息后。

views.py

def post(self, request, ab=None, all_seat=None): # 獲取用戶信息 date = request.POST.get(’date’) time = request.POST.get(’time’)

然后

views.py

seatform = SeatForm(request.POST) # 提交給數(shù)據(jù)庫(kù) #這里的is_valid()是Django默認(rèn)的,檢查是否正確if seatform.is_valid(): # 這里向數(shù)據(jù)庫(kù)新增一條信息,然后保存 getSeat = Seat.objects.create(dateTime=date, classtime=time, status=’0’, user=name, number=label) getSeat.save()

上面的SeatForm()是我們?cè)谂cviews.py同級(jí)目錄下創(chuàng)建的forms.py

forms.py

class SeatForm(forms.Form):#注意這里的date和time需要與前端的命名要一直 date = forms.CharField() time = forms.CharField()

通過(guò)這樣的方法,我們就可以保存到數(shù)據(jù)庫(kù)了。

以上這篇Django在Model保存前記錄日志實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 当阳市| 长汀县| 新丰县| 黔西县| 开鲁县| 遂川县| 当阳市| 儋州市| 吐鲁番市| 定陶县| 安国市| 页游| 合江县| 禄丰县| 理塘县| 襄垣县| 嘉峪关市| 斗六市| 阳信县| 辉县市| 田林县| 嘉荫县| 陵水| 城口县| 抚顺县| 洛隆县| 普洱| 措美县| 渝中区| 内乡县| 新和县| 驻马店市| 从化市| 大邑县| 河北区| 连江县| 佛山市| 双柏县| 牡丹江市| 区。| 栾川县|