0
我試圖覆蓋save()
方法ModelForm
。我有一些字段添加到self._meta.fields
(我有沒有包括他們因爲某些原因Meta
類字段),這裏是代碼:django ModelForm - 覆蓋保存()並將字段添加到self._meta.fields
def save(self, commit=True):
"""
Save override
"""
fields_to_save_list = list(self._meta.fields)
fields_to_save_list.extend(['city','region','zip'])
fields_to_save_tuple = tuple(fields_to_save_list)
setattr(self._meta, 'fields', fields_to_save_tuple)
return super(SubjectAdminForm, self).save(commit)
它不工作,我self._meta.fields是總是一樣。也許一些基本的python錯誤。任何幫助?
已經完成。我不想顯示這些字段的初始值,因爲我有相同的三個字段重複部件(重複是'city_sel','region_sel','zip_sel',他們是選擇小部件,並且只是表單字段,而不是'城市','地區','拉鍊'也是模型領域)。相應的小部件由js顯示/隱藏,取決於所選國家(我有一個選擇小部件的國家)。它可以工作,但不會保存值,因爲在父save()的save_instance方法中調用了一個construct_instance方法,該方法在Meta上聲明的字段上循環。我如何爲Meta添加值? – Luke
它不是因爲字段不在meta中,而可能是您使用的是模型字段,並且模型不具有這些字段。我相信你不應該在保存方法中做到這一點,儘管 – karthikr
是否可以將這些字段添加到哪裏? – Luke