У меня есть view
, который я хочу использовать с пользовательским form_class
:
class CustomCreateView(CreateView):
form_class = CustomCreateForm
fields = ['field1', 'field2']
Я хочу использовать это представление несколько раз, чтобы использовать его с различными моделями, такими как:
class CreateBook(CustomCreateView)
model = Books
class CreateCar(CustomCreateView)
model = Cars
Поскольку я хочу использовать его повторно, мне нужен способ передать model
из CreateView
в класс формы. Я не могу указать его в классе формы, потому что тогда я не могу повторно использовать представление между различными моделями.
Есть ли способ сделать это? Например,
class CustomCreateForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
model = kwargs.pop('model')
self._meta.model = model
super(CustomCreateForm, self).__init__(*args, **kwargs)
class Meta:
fields = '__all__'