У меня есть Динамическая Форма в формах. Как я могу передать аргумент от своего представления, когда я инстанцирую своей формы?
Что-то как:
form = DynamicForm("some string argument I'm passing to my form")
Это - форма, которую я имею:
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)
Добавьте его в качестве аргумента по ключевому слову, скажем, он называется my_arg. Убедитесь, что pop()
аргумент ключевого слова arg перед вызовом super()
, так как метод init родительского класса не принимает дополнительные аргументы ключевого слова.
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)
А когда вы создаете форму, то это выглядит так:
form = DynamicForm(..., my_arg='value')