0
我有以下型號:的Django的ModelForm未檢測場
class Model1(models.Model):
field1 = ...
field2 = ...
class Meta:
abstract = True
class Model2(models.Model):
field3 = ...
field4 = ...
class Meta:
abstract = True
我有上述的具體實施方式:
class ConcreteModel1(Model1):
field1_group = ... # foreign key to ConcreteModel3
class ConcreteModel2(Model2):
field3_test = ... # foreign key to ConcreteModel4
我有抽象ModelForms:
class Model1Form(ModelForm):
class Meta:
widgets = { ... }
abstract = True
class Model2Form(ModelForm):
class Meta:
widgets = { ... }
abstract = True
我有混凝土ModelForms:
class ConcreteModel1Form(Model1Form):
class Meta(Model1Form.Meta):
model = ConcreteModel1
exclude = ('field1_group')
class ConcreteModel2Form(Model2Form):
class Meta(Model2Form.Meta):
model = ConcreteModel2
exclude = ('field3_test')
現在,您可以看到兩種模型表單之間存在相似性。 問題是,在我的模板field1是可見的ConcreteModel1Form(預期的行爲) 但在另一個模板field3是不可見的ConcreteModel2Form(意外的行爲)。
如果我註釋掉排除=(「field3_test」),那麼場3是在模板(預期的行爲)可見,但因爲field3_test是無,是一個必填字段表單驗證失敗。
我錯過了什麼?這似乎是我的代碼的問題,我無法弄清楚。這種行爲顯然不一致,我無法看到我的代碼中的差異。
任何想法如何調試?可能是什麼問題呢?
我試圖從基本窗體類中刪除abstract = True,並沒有幫助。
但是,在ConcreteModelForm類中顯式指定字段列表仍然有效。但我不明白爲什麼排除列表適用於一個案例,而不是另一個。
這是一個明智的建議。有用。但爲什麼需要','。這是在Django中的錯誤? –
我在這裏找到我的答案: http://stackoverflow.com/questions/6082195/how-to-remove-extra-in-tuple-in-djangopython 非常適合約定配置。 –