Django CreateView-如何调用表单类__init__?

And*_*uiz 0 python forms django

我有一个django create视图,我想调用__init__表单类的,但我不知道该怎么做。

class PersonCreateView(CreateView):
    model = Person
    form_class = PersonForm
Run Code Online (Sandbox Code Playgroud)

在表单类中,我做了一些逻辑来重新定义一些组合的查询集。我的问题是,我不知道如何调用该__init__方法或任何其他方法PersonForm

在此先感谢您的帮助。

Dan*_*man 5

你不应该自己称呼它。您可以重写get_form_kwargs以提供额外的参数以传递给表单实例化。

class PersonCreateView(CreateView):
    model = Person
    form_class = PersonForm

    def get_form_kwargs(self, *args, **kwargs):
        form_kwargs = super(PersonCreateView, self).get_form_kwargs(*args, **kwargs)
        form_kwargs['my_extra_queryset_param'] = get_my_extra_queryset()
        return form_kwargs
Run Code Online (Sandbox Code Playgroud)