2017-07-05 16 views
0

をmodelfactoryするには、カスタムフォームパラメータを渡す:ジャンゴ - 私はこのようなジャンゴのModelFormを持って

class ContactPhoneForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(ContactPhoneForm, self).__init__(*args, **kwargs) 
    #.... 

...と私はそれぞれのフォームセットを取得しようとするビュー:今すぐ

ContactPhoneFormSet = modelformset_factory(ContactPhone, 
              ContactPhoneForm, 
              extra=1, 
              can_delete = True) 

を、私は書き換えしようとした

class ContactPhoneForm(forms.ModelForm): 
     def __init__(self, contact_id, *args, **kwargs):  
      self.contact_id = contact_id 
      super(ContactPhoneForm, self).__init__(*args, **kwargs) 
     #.... 

:私は、フォームの__init__メソッドに渡される追加のパラメータをしたいです私の見解this postに従って:

ContactPhoneFormSet = modelformset_factory(ContactPhone, 
              wraps(ContactPhoneForm)(partial(ContactPhoneForm, contact_id=contact_id)), 
              extra=1, 
              can_delete = True) 

が、私はTypeError: the first argument must be callableエラーで終わります。これに関する助言?あなたが行うことができるはずので

答えて

1

ジャンゴ1.9はform_kwargs arguementを追加しました:

ContactPhoneFormSet = modelformset_factory(
    ContactPhone, ContactPhoneForm, extra=1, can_delete=True) 
formset = ContactPhoneFormSet(form_kwargs={'contact_id': contact_id}) 
+0

をうわーありがとう:)。多分あなたはここであなたの答えを投稿するべきです(https://stackoverflow.com/questions/622982/django-passing-custom-form-parameters-to-formset)。 そして、未来のために - あなたがこの情報を知るようになった場所について考えることができますか? –

関連する問題