我試圖根據存儲在數據庫中的字段及其定義動態地構建表單。在我的數據庫中,我已經定義了1個複選框,其中包含一些標籤和一個帶有某個標籤的文本框。在Django中構建動態表單
如何從db中的數據在我的視圖中動態創建表單?
感謝
我試圖根據存儲在數據庫中的字段及其定義動態地構建表單。在我的數據庫中,我已經定義了1個複選框,其中包含一些標籤和一個帶有某個標籤的文本框。在Django中構建動態表單
如何從db中的數據在我的視圖中動態創建表單?
感謝
的Django確實從model definitions.
第一步一個偉大的自動生成工作形式可能會創建一個反映現有數據庫的Django模型。
關於複選框/文本字段的東西:
Django的具有字段和部件之間有很大的分離。您可能有一個存儲數字的IntegerField,但您可以改變顯示給用戶的小部件,以便編輯該號碼。在某些情況下,您可能有一個輸入框,在其他情況下可能有一個textarea,或者一個下拉列表。 字段將處理類型轉換和驗證等細節,小部件確定表單字段的樣子。
某些字段類型具有與它們關聯的默認小部件,但您可以覆蓋它們。
另外,還要注意有表單字段和示範田之間的差異。
要動態地做到這一點,可以將項目添加到self.fields SortedDict上。 I.E:
from django.forms.forms import Form
from django.forms.fields import CharField
class FunkyForm(Form):
def __init__(self, *args, **kwargs):
super(FunkyForm, self).__init__(*args, **kwargs)
for item in range(5):
self.fields['test_field_%s' % item] = CharField(max_length=255)
會給你一個表單類,它用5個動態生成的CharFields實例化。
下面是談話我在EuroDjangoCon了這樣做正是這樣的幻燈片:http://www.slideshare.net/kingkilr/forms-getting-your-moneys-worth
好東西!希望我在開始時閱讀過這些內容,因爲當你實際使用Django表單時,你在這裏展示的很多東西都會激發你的大腦。 – Koobz 2010-02-10 04:24:19
該項目是模型免費。沒有定義模型。假設數據正在從輸入文件(如XML)中讀取,而不是從數據庫中讀取。 – user140736 2010-02-10 03:41:17