2012-09-25 74 views
0

在自定義的ModelForm中,我希望有一個HiddenInput字段,該字段具有模型的Autofield主鍵的值。如果表單是在沒有模型的情況下創建的,那麼此字段將爲None。如果提供模型來實例化表單,它應該包含模型的Autofield ID。這可能嗎?我想是這樣的:如何將模型的Autofield值作爲自定義ModelForm字段

class MyCustomForm(forms.ModelForm): 
    the_id = forms.HiddenInput() 

    def __init__(self, *args, **kwargs): 
     super(MyCustomForm, self).__init__(*args, **kwargs) 
     self.fields["the_id"].initial = args.get('id', None) 

回答

1

所以周圍挖後,我碰到這個傳來:

https://groups.google.com/forum/?fromgroups=#!topic/django-users/vmIXXr5tsdI

其中指出,目前是ModelForms沒有HiddenInput場。我應該更仔細地閱讀文檔。這裏是我最後得到的結果:

MyCustomForm(forms.ModelForm): 
    the_id = forms.IntegerField(widget=forms.HiddenInput) 

    def __init__(self, *args, **kwargs): 
     super(MyCustomForm, self).__init__(*args, **kwargs) 

     instance = getattr(self, 'instance', None) 
     if instance and instance.id: 
      self.fields["the_id"].initial = instance.id 
相關問題