我們有一個包含models.py的應用程序,其中包含n個no。的類繼承基類。我們想創建一個表單,它動態地從用戶n中保存數據庫中的值,但問題是我們想用django表單域而不是django模型表單。如何在Django中使用表單域映射模型字段
因爲我們知道有一些領域在Django的形式缺少如PositiveIntegerField,CommaSeparetedIntegerFields等,我們怎樣才能做到這一點使用Django的表單字段?
如果我們在shell中編寫follwing代碼。
from djnago.db import models
mvar = models.PositiveIntegerFields()
from django import forms
fvar = forms.PositiveIntegerFields()
AttributeError: 'module' object has no attribute 'PositiveIntegerField'
forms.py
from django import forms
class ContextForm(forms.Form):
def __init__(self, rdict, *args, **kwargs):
super(ContextForm, self).__init__(*args, **kwargs)
for key in rdict.keys():
self.fields['%s' % str(key)] = getattr(forms,rdict.get(key))()
rdict = {'address': 'CharField','phone': 'CharField', 'Salary': 'PositiveIntegerField','first name': 'CharField','last name':'CharField'}
爲什麼不使用'ModelForm'並堅持使用standart Form?雖然您想要的所有內容都已通過'ModelForm'提供給您,但您必須有一個非常好的理由不要使用它。 – FallenAngel
我們可以動態創建ModelForm嗎? –
我敢肯定,我們可以 – okm