Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.forms import ModelForm
- from testprogram.online_bookings.models import Passenger
- class PassengerInfoForm(ModelForm):
- def set_form_excludes(self, exclude_list):
- self.Meta.exclude = excludes_list
- class Meta:
- model = Passenger
- exclude = []
- def get_form(exclude_list):
- class myform(ModelForm):
- class Meta:
- model = Passenger
- exclude = exclude_list
- return myform
- frm_class = get_form( ('field1', 'field2') )
- form = frm_class()
- def PassengerForm(exclude_list, *args, **kwargs):
- class MyPassengerForm(ModelForm):
- class Meta:
- model = Passenger
- exclude = exclude_list
- def __init__(self):
- super(MyPassengerForm, self).__init__(*args, **kwargs)
- return MyPassengerForm()
- form = PassengerForm( ('field1', 'field2') )
- class PassengerInfoForm(ModelForm):
- def __init__(self, *args, **kwargs):
- exclude_list = kwargs['exclude_list']
- del kwargs['exclude_list']
- super(PassengerInfoForm, self).__init__(*args, **kwargs)
- for field in exclude_list:
- del self.fields[field]
- class Meta:
- model = Passenger
- form = PassengerInfoForm(exclude_list=['field1', 'field2'])
- from django.contrib.admin.widgets import AdminDateWidget
- from django.forms import ModelForm
- from django.db import models
- def ModelFormFactory(some_model, *args, **kwargs):
- """
- Create a ModelForm for some_model
- """
- widdict = {}
- # set some widgets for special fields
- for field in some_model._meta.local_fields:
- if type(field) is models.DateField:
- widdict[field.name] = AdminDateWidget()
- class MyModelForm(ModelForm): # I use my personal BaseModelForm as parent
- class Meta:
- model = some_model
- widgets = widdict
- return MyModelForm(*args, **kwargs)
Add Comment
Please, Sign In to add comment