Forms

If NO custom forms defined in CRUD class, then by default crudbuilder will generate modelform from Django modelform factory.

Custom Modelform in CRUD class

You can define your own custom modelform in yourapp/forms.py and the same will be used for CRUD class. As shown below:

# yourapp/forms.py
class PersonEmploymentForm(forms.ModelForm):
        class Meta:
                model = PersonEmployment
                fields = '__all__'
                # exclude = ('person',)

# yourapp/crud.py
class PersonEmploymentCrud(BaseCrudBuilder):
        model = PersonEmployment
        custom_modelform = PersonEmploymentForm

Separate CREATE and UPDATE forms

You can also define separate forms for CreateView and UpdateView.:

# yourapp/forms.py
class PersonEmployementCreateForm(forms.ModelForm):
        class Meta:
                model = PersonEmployment
                exclude = ('person', 'medical_allowance')

class PersonEmployementUpdateForm(forms.ModelForm):
        class Meta:
                model = PersonEmployment
                exclude = ('salary', 'year')

# youapp/crud.py
class PersonEmploymentCrud(BaseCrudBuilder):
        model = PersonEmployment
        createupdate_forms = {
                'create': PersonEmployementCreateForm,
                'update': PersonEmployementUpdateForm
        }

You can check forms.py of example project on Github.