我有3個模型,每個模型都有不同的字段。對於其中的兩個模型,我可以使用通用表單(通過Django的create_object)來請求數據。我寫了接受該型號名稱,併發送用戶的一般形式Django:顯示通用ModelForm或預定義的形式
url(r'^add_(?P<modelname>\w+)/$', generic_add),
def generic_add(request, modelname):
mdlnm_model = models.get_model('catalog',modelname)
return create_object(request,
model = mdlnm_model,
template_name = 'create.html',
post_save_redirect = '/library/',
extra_context = {'func': 'Create ' + modelname},
login_required = 'True'
)
爲第三模式的功能,我有一個的ModelForm類中定義的,這樣我可以省略在這個模型中的一個字段,當用戶看到表單。
url(r'^create_actor/$', create_object, Actor_Input, name='db_actor_create'),
Actor_Input = {
'form_class': ActorForm,
'template_name': 'create.html',
'post_save_redirect': '/library/',
'extra_context': {'func': 'Create Actor'},
'login_required': 'True'
}
class ActorForm(forms.ModelForm):
class Meta:
model = Actor
fields = ('name','age','height','short_description',
'long_description')
有沒有辦法Django的顯示定義的ModelForm如果它存在,但以其他方式顯示完全通用的形式,如果定義的形式尚未作出?我預計會創建更多的模型,而不是爲每個需要按照Actor的方式拆分的模型創建一個url。
所以把不同的方式,我想改變generic_add功能,因此它會使用ActorForm(如果存在的話),但除此之外,通用的ModelForm。我知道如何檢查ActorForm類的存在,但是如果我希望它也是動態的呢?就像檢查:modelname +'Form'是否存在一樣。我不確定如何動態地將用戶發送到預定義的表單(如果存在)。
有什麼建議嗎?有沒有更好的方法來看待這個問題?
我很難跟隨你試圖完成從你的描述總體。您是否很舒服地將相關位粘貼到某個位置的粘貼文件夾中,以便我們可以看到您到目前爲止的內容? – 2010-03-04 05:26:30
道歉,請參閱修改後的問題 – 2010-03-04 13:30:11