Django ModelForm修改預設的控制項屬性

2021-07-30 07:19:31 字數 1324 閱讀 6426

django 中利用modelform 可以快速地利用資料庫對應的model 子類來自動建立對應表單.

例如:

from django.db import models

from django.forms import modelform

class

book

(models.model):

name = models.charfield(max_length=100)

authors = models.manytomanyfield(author)

class

bookform

(modelform):

class

meta:

model = book

fields = ['name', 'authors']

但這樣預設建立的表單是很醜的, 一般需要重寫字段的控制項屬性, 來加入各種效果. 總結下我常用的兩種.

在django手冊的modelform一章中, 提供了這種方式, book 的name 屬性為charfield 如果希望它表示成乙個而不是預設的時, 可以按如下方式覆蓋字段預設的widget:

class

bookform

(modelform):

class

meta:

model = book

fields = ['name', 'authors']

widgets = ),

}

這種方式可以指定控制項的型別及其對應的屬性, 不過大部分時候, 預設的控制項型別已經夠用了, 只需要修改控制項的屬性. 可以採取另外一種更方便的方法.

通過通過重寫__init__方法, 遍歷base_fields欄位, 來快速修改控制項的屬性.

class

bookform

(modelform):

class

meta:

model = book

fields = ['name', 'authors']

def__init__

(self, *args, **kwargs):

super(bookform, self).__init__(*args, **kwargs)

for field_name in self.base_fields:

field = self.base_fields[field_name]

field.widget.attes.update()

修改DataGrid控制項的預設的分頁樣式

其實也不是很難,先看看datagrid顯示的是什麼東東,這樣可能會有點眉目。在datagrid中,分頁導航欄是用一行 tablerow 來表現出來,在這個行 tablerow 中,只有乙個列 tablecell 我們所看到的所有的數字超連結按鈕 linkburron 都是這個列 tablecell ...

Duilib Font字型屬性,控制項的常規屬性

字型屬性有 如果想使用某個字型,只要在控制項的屬性裡指定該字型的序號就可以了。如 name thebtn 用處 代表當前控制項。text 文字 用處 控制項上顯示的文字。textcolor可以設定它的顏色。disabledtextcolor禁用時的顏色。textpadding文字邊距。tooltip...

修改jupyter notebook的預設路徑

問題描述 在使用jupyter notebook中發現每次jupyter notebook自動開啟預設的路徑,很不方便。我希望在指定的路徑下開啟jupyter notebook。如,在命令列中 cd e pythonworkout 進入到指定的資料夾,然後 e pythonworkout jupyt...