2016-03-29 40 views
3

models.pyは次のようになります。今Djangoフォームを使用してインラインフォームセットを作成すると、この奇妙なエラーが発生します。私は間違って何をしていますか?

class Member(models.Model): 
    name = models.CharField(max_length=255) 
    occupation = models.CharField(max_length=255) 

class FamilyMember(models.Model): 
    name = models.CharField(max_length=255) 
    relation = models.CharField(max_length=255) 
    member = models.ForeignKey(Member) 

、私はメンバーのフォーム内の家族のためのインラインフォームを作成しようとしています。これを行うには、私はinlineformset_factory使用しています:Djangoのインポートフォームから

はmyapp.modelsから インポート* django.forms.modelsから は、私は、サーバーを実行すると

class MemberForm(forms.ModelForm): 
    class Meta: 
     model = Member 
     fields = [ 
      'name', 'occupation', 
     ] 

FamilyMemberFormSet = inlineformset_factory(Member, FamilyMember) 

、私は奇妙なinlineformset_factory取得インポートエラー:

"Calling modelformset_factory without defining 'fields' or " 
django.core.exceptions.ImproperlyConfigured: Calling >modelformset_factory without defining 'fields' or 'exclude' explicitly is prohibited. 

私は間違っていますか?ありがとう。

答えて

11

私はわからないが、私はあなたがinlineformset_factoryにフォームを渡すのを忘れて思う:

FamilyMemberFormSet = inlineformset_factory(Member, FamilyMember, form=MemberForm) 

をそれとも、フィールドがfieldsパラメータまたはexcludeのいずれかを使用して除外/含めるべきものを指定する必要があります。

Django doc about inlineformset_factoryの例を参照してください。ここ

+0

さてさて、私は、パラメータを追加しました。しかし、今、私はこのエラーを取得する:FamilyMember –

+0

NVMに指定した未知のフィールド(複数可)(名前、職業、私のデータフィールドの膨大なリスト.....)、:FieldError(メッセージ) django.core.exceptions.FieldErrorを上げます私は問題があると思う。 –

+1

あなたのフォームは 'Member'ではなく' FamilyMember'のためにあるべきなのでしょうか? –

0

あなたは以下のとおりです。

FamilyMemberFormSet = inlineformset_factory(Member, FamilyMember, fields =['name', 'occupation',]) 
+1

このコードスニペットをご利用いただき、ありがとうございます。 *なぜ*これが問題の良い解決策であるかを示すことによって[適切な説明は長期的価値を大幅に改善する](// meta.stackexchange.com/q/114762/350567)、将来的にはより有用になる他の同様の質問の読者。あなたの前提を含め、あなたの答えを[編集]して説明を加えてください。 – iBug

関連する問題