基于 Class 的视图中的 Django 有界表单 - CreateView class

Django Bounded forms in Class based views - CreateView class

我将如何在基于 CreateView class 的视图中覆盖 GET 方法以生成 有界形式 ,通过它我意味着它将在生成的表单中为其某些字段设置预设值(我需要使用一些默认值来实例化表单,而不是使用 CreateView 默认使用的表单的空白版本)。

我试着查看 https://ccbv.co.uk/projects/Django/1.6/django.views.generic.edit/CreateView/,但不太了解此 class 中 GET 方法的流程。

BaseCreateView

def get(self, request, *args, **kwargs):
    self.object = None
    return super(BaseCreateView, self).get(request, *args, **kwargs)

ProcessFormView

Handles GET requests and instantiates a blank version of the form.

def get(self, request, *args, **kwargs):
    """
    Handles GET requests and instantiates a blank version of the form.
    """
    form_class = self.get_form_class()
    form = self.get_form(form_class)
    return self.render_to_response(self.get_context_data(form=form)) 

由于 CreateView 使用 modelFormFactory 生成空表单,我究竟应该在哪里覆盖 get 来实例化我的表单。

这不是绑定表单:绑定表单是根据 POST 数据创建并经过表单验证的表单。

要为新表单提供初始数据,您需要覆盖 get_initial 方法。或者,如果该数据是静态的,您可以只提供 class 级 initial 字典。

编辑

def get_initial(self):
    if request.GET.get('codereview-get'):
        initial = {'stream_name': 'TROI'}
    else:
        initial = {}
    return initial