Django在表单上创建视图参数

pyn*_*ice 1 django django-generic-views

我有一个Django generic create view

class TestCreateView(CreateView):
    form_class = TestCreateForm

##forms.py
class TestCreateForm(forms.ModelForm):
    class Meta:
        model = Test

    def __init__(self, user, *args, **kwargs):
        super(TestCreateForm).__init__(*args, **kwargs)
        self.fields['test_field'] = Testing.objects.filter(user=user)
Run Code Online (Sandbox Code Playgroud)

在基于函数的视图中,我会这样:

form = TestCreateForm(request.user)
Run Code Online (Sandbox Code Playgroud)

现在,在基于通用类的视图上,我是否必须重写,get并且post为此仅使用方法?

Sun*_*eUp 6

class TestCreateView(CreateView):
    form_class = TestCreateForm

    def get_form_kwargs(self, **kwargs):
        form_kwargs = super(TestCreateView, self).get_form_kwargs(**kwargs)
        form_kwargs["user"] = self.request.user
        return form_kwargs
Run Code Online (Sandbox Code Playgroud)