I have a Dynamic Form in forms. How can I pass an argument from my view when I instantiate my form?
Something like:
form = DynamicForm("some string argument I'm passing to my form")
This is the form I have:
class DynamicForm(Form): def __init__(self, *args, **kwargs): super(DynamicForm, self).__init__(*args, **kwargs) for item in range(5): self.fields['test_field_%d' % item] = CharField(max_length=255)
Add it as keyword argument, say it's called my_arg. Make sure to pop()
the keyword arg before calling super()
, because the parent class's init method doesn't accept extra keyword arguments.
class DynamicForm(Form): def __init__(self, *args, **kwargs): my_arg = kwargs.pop('my_arg') super(DynamicForm, self).__init__(*args, **kwargs) for item in range(5): self.fields['test_field_%d' % item] = CharField(max_length=255)
And when you create form it's like this:
form = DynamicForm(..., my_arg='value')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With