Reputation: 8722
My models.py looks like this:
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)
I am trying to create an inline form for family members inside the members form. To do that, I am using inlineformset_factory
:
from django import forms
from myapp.models import *
from django.forms.models import inlineformset_factory
class MemberForm(forms.ModelForm):
class Meta:
model = Member
fields = [
'name', 'occupation',
]
FamilyMemberFormSet = inlineformset_factory(Member, FamilyMember)
When I run the server, I get the below error:
"Calling modelformset_factory without defining 'fields' or "
django.core.exceptions.ImproperlyConfigured: Calling >modelformset_factory without defining 'fields' or 'exclude' explicitly is prohibited.
What am I doing wrong?
Upvotes: 8
Views: 8194
Reputation: 61
here you are:
FamilyMemberFormSet = inlineformset_factory(Member, FamilyMember, fields =['name', 'occupation',])
Upvotes: 5
Reputation: 25539
I'm not sure but I think you forgot to pass the form to inlineformset_factory
:
FamilyMemberFormSet = inlineformset_factory(Member, FamilyMember, form=MemberForm)
Or you should specify what fields should be included/excluded using either fields
parameter or exclude
.
See some examples in Django doc about inlineformset_factory.
Upvotes: 16