user140736 user140736 - 5 months ago 10
Python Question

passing arguments to a dynamic form in django

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)

Answer

Add it as keyword argument, say it's called my_arg.

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')
Comments