passing arguments to a dynamic form in django

前端 未结 2 1930
时光说笑
时光说笑 2020-12-28 15:56

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         


        
2条回答
  •  佛祖请我去吃肉
    2020-12-28 16:37

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

提交回复
热议问题