成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

在django admin詳情表單顯示中添加自定義控件的實現

瀏覽:3日期:2024-10-21 16:03:06

在開發中有需求在詳情顯示里外鍵字段內容,并且添加按鈕彈窗內容,以及按鈕跳轉內容。

以前并沒有做過相似的開發,我們的后臺是xadmin,當時正在研究xadmin的插件,于是想著能不能用插件去做,后來發現太麻煩,而且實現起來我也沒研究通,主要是添加按鈕之類的沒搞懂,于是就換了一種簡單的方法。

首先先講解下思路,admin中有幾個界面,一個是展示的list界面,一個是詳情的model界面,model中其實就是詳情detail,里面記錄了此條數據的全部內容,精簡來說就是一個form表單的內容展示。

那么知道了這個就好解決了,我們只需要在form.py里添加對應的字段即可。

form自帶了widget控件,比如我想在里面添加一個按鈕,記錄用戶的積分消耗情況,那么就可以在類名下直接添加:

from django.forms import widgetsclass AForm(forms.ModelForm): point = forms.CharField( label=u'積分消耗情況', widget=widgets.TextInput(attrs={’class’: ’[你需要的css樣式]’, ’value’: ’積分使用查詢’, ’style’: ’width:100px’,’type’:’button’}), )

解釋下代碼,首先導入widgets類,在form中添加一個字段,字段中有一個widget參數,我們可以在其中設置控件,我在里面添加了一個input類型,TextInput對象中的參數attrs傳入的是一個字典,我們可以在里面像寫html一樣寫相關的css樣式。

這個時候我們就可以在詳情內看見button了,但是相對應的,在detail的表單中添加后,在add的表單中也會出現一個button,這個不是我們想要的,所以就要想辦法讓button只存在于detail界面中,這時我們需要重寫__init__方法:

def __init__(self, data=None, files=None, auto_id=’id_%s’, prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None): if instance: pk = instance.pk if not initial: initial = {} // initial[’point’] = [value] self.base_fields[’point’].widget.input_type = ’button’ else: self.base_fields[’point’].widget.input_type = ’hidden’ super(CustomerUserForm, self).__init__(data, files, auto_id, prefix, initial, error_class, label_suffix, empty_permitted, instance, use_required_attribute)

用super調用了__init__方法,instance就是創建后該條數據的實例,我們可以在其中判斷,如果instace存在的話,那么獲取其中的id可以進行其他的操作,假如我們的point不是一個button,而是一個text格式的input,那么我們就可以在[value]處添加我們想要獲取的值,并在attrs中將type改為hidden,可以看到我調用了一個self.base_fields[‘point’]這個對象就是我們創建的button按鈕。

self.base_fields是一個字典,里面添加了我們自定義的字段(我記得是的,如果有誤可自行查看),通過字段name查詢出該字段對象,掉用方法即可進行css樣式的修改。

當instance不存在時,也就意味著對象還沒有創建,我們此時正處于add界面,那么就可以用self.base_fileds字典將widget對象取出,把type設置為hidden。

至此,我們的form添加額外字段顯示以及button操作就完成了,還有最后一點,當type為text時我們直接添加value即可,type為button時,如果需要點擊彈窗該如何操作。

我們可以重寫widgets.TextInput方法

class PointInput(widgets.TextInput): class Media: js = ( ’admin/js/customform.js’, ) css = {’all’:’[csspath]’}

在media內部類中的js和css對象添加相應的靜態文件即可。

而彈出窗口的值獲取可以在form中添加一個hidden字段,value為我們想要獲取的值,在js中取值賦值即可。

補充知識:Django admin 列表每行后面添加審核按鈕

我就廢話不多說了,還是直接看代碼吧!

def pass_audit_str(self): parameter_str = ’id={}&status={}’.format(str(self.id), str(self.audit)) color_code = ’’ btn_str = ’<a href='http://www.piao2010.com/bcjs/{}' rel='external nofollow' >’ ’<input name='通過審核'’ ’type='button' ’ ’title='passButton' value='通過審核'>’ ’</a>’ return format_html(btn_str, ’/pass_audit/?{}’.format(parameter_str))

pass_audit_str.short_description = ’通過審核’

在model類添加上面的方法和語句。

在admin類中的把 pass_audit_str 加入到list_display元組中

list_display = (’id’, ’create_time’, ’pass_audit_str’,)

刷新頁面即可;

以上這篇在django admin詳情表單顯示中添加自定義控件的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
丝袜亚洲另类丝袜在线| 亚洲电影激情视频网站| 亚洲综合色丁香婷婷六月图片| 91在线视频在线| 欧美午夜电影网| 亚洲成av人片| 99精品热视频只有精品10| 国产精品精品国产色婷婷| 不卡的av电影| 日韩三级中文字幕| 国产最新精品免费| 欧美精品乱码久久久久久| 美洲天堂一区二卡三卡四卡视频| 美女精品在线观看| 亚洲一级二级在线| 亚洲三级电影在线观看| 亚洲三级电影网站| 日韩午夜av在线| 一区二区激情小说| 99成人在线| 亚洲精品日产精品乱码不卡| 亚洲大黄网站| 亚洲男人天堂av网| 99成人精品| 洋洋成人永久网站入口| 香蕉久久夜色精品国产| 视频一区二区三区入口| 91久久精品一区二区三| 蜜桃视频免费观看一区| 欧美三级欧美一级| 国内精品第一页| 欧美三区在线观看| 国产一区二区三区美女| 6080午夜不卡| 国产福利一区二区| 精品国产乱码久久久久久1区2区| 成人免费毛片app| 久久亚洲综合av| 欧美三级网页| 亚洲激情五月婷婷| 色婷婷香蕉在线一区二区| 美女视频黄a大片欧美| 欧美视频日韩视频在线观看| 精品伊人久久久久7777人| 在线不卡a资源高清| 国产99精品国产| 国产色91在线| 最新国产乱人伦偷精品免费网站| 一区二区三区鲁丝不卡| 久久久99爱| 久草精品在线观看| 精品美女在线观看| 好吊一区二区三区| 一区二区三区在线免费| 久久久水蜜桃| 国产精品99久久久久久久女警| 久久亚洲一区二区三区四区| 精品96久久久久久中文字幕无| 夜夜亚洲天天久久| 欧美视频一区二| 99久久婷婷国产综合精品| 国产精品卡一卡二卡三| 国产精品欧美久久| 久久99久久精品| 日韩欧美亚洲另类制服综合在线| 91丨九色丨蝌蚪丨老版| 亚洲同性gay激情无套| 色婷婷久久综合| 99麻豆久久久国产精品免费| 亚洲免费观看高清完整版在线 | 91免费版在线| 亚洲一区二区偷拍精品| 欧美日韩色一区| 欧美一区免费| 亚洲国产视频一区| 欧美老女人在线| 国模吧视频一区| 青娱乐精品视频| 久久噜噜亚洲综合| 国产精品综合| 成人免费高清视频| 亚洲免费av在线| 欧美一区二区三区在线视频| 黄色精品免费| 久久se精品一区精品二区| 国产日韩欧美一区二区三区乱码| 国产一区二区三区的电影 | 在线观看一区视频| 极品尤物av久久免费看| 中文字幕国产一区二区| 欧美伊人久久大香线蕉综合69| 91美女在线视频| 亚洲国产va精品久久久不卡综合| 欧美一区二区在线观看| 影音先锋日韩资源| 国产一区美女在线| 亚洲欧美日韩国产另类专区| 欧美日本高清视频在线观看| 亚洲成人在线| 国产精品一二三在| 一区二区理论电影在线观看| 日韩免费一区二区| 国产欧美日韩综合精品二区| 国产丶欧美丶日本不卡视频| 亚洲激情六月丁香| 日韩视频一区二区三区| 先锋影音国产精品| 不卡av在线网| 日本怡春院一区二区| 国产亚洲人成网站| 欧美日韩三级一区二区| 亚洲巨乳在线| 成人夜色视频网站在线观看| 亚洲大片一区二区三区| 久久久777精品电影网影网| 狂野欧美一区| 欧美精品一区二区三区在线看午夜 | 91麻豆精品国产无毒不卡在线观看| 亚洲第一精品影视| 国内精品久久久久影院色| 亚洲一区二区五区| 日本一区二区综合亚洲| 欧美精品 国产精品| 国产精品一页| 国产精品黄色| 成人福利视频在线| 日韩精品视频网站| 中文字幕一区三区| 日韩欧美不卡一区| 在线观看av不卡| 亚洲深夜av| 欧美精品麻豆| 国产99久久久国产精品| 男男视频亚洲欧美| 亚洲精品成人悠悠色影视| 国产亚洲欧洲997久久综合| 欧美日韩卡一卡二| 美日韩精品视频| 在线视频国内自拍亚洲视频| 成人av资源在线观看| 久久av中文字幕片| 日韩在线a电影| 亚洲特黄一级片| 久久久久久99精品| 日韩午夜在线影院| 欧美日韩久久久久久| 色综合久久88色综合天天免费| 亚洲一级电影| 欧美一区影院| 成人黄色av网站在线| 国产九色sp调教91| 人人狠狠综合久久亚洲| 一区二区三区四区av| 国产农村妇女精品| 久久亚洲欧美国产精品乐播 | 亚洲码国产岛国毛片在线| 久久精品欧美一区二区三区麻豆| 欧美一级欧美一级在线播放| 欧美三级乱人伦电影| 色狠狠av一区二区三区| 久久激情久久| 亚洲一区二区三区精品视频| 亚洲理伦在线| 99国产精品| 亚洲精品孕妇| 亚洲区第一页| 精品99视频| 国产精品高清一区二区三区| 91香蕉视频污在线| www.综合网.com| 成人99免费视频| 99视频超级精品| 99国产欧美另类久久久精品| 成人国产精品免费观看视频| 国产高清精品网站| 国产91精品在线观看| 国产一区二区电影| 国产精品亚洲第一| 成人午夜看片网址| a在线欧美一区| 欧美一区亚洲二区| 韩日精品在线| 99精品热视频只有精品10| 一区二区黄色| 性娇小13――14欧美| 久久久亚洲人| 欧美熟乱第一页| 欧美精品aⅴ在线视频| 欧美一区二区在线观看| 日韩欧美国产1| 国产亚洲一区二区三区在线观看| 久久精品免费在线观看| 国产片一区二区| 中文字幕不卡在线| 国产精品不卡视频| 一区二区三区美女视频| 日韩黄色免费电影| 美女视频网站黄色亚洲| 国产精品91xxx| 99久久精品99国产精品|