有没有办法在 CreateView 表单中创建隐藏的表单字段?

Is any way to create hidden form field in CreateView form?

有什么方法可以在 CreateView 表单中创建隐藏的表单字段?

class CommentAdd(AjaxableResponseMixin, CreateView):
    model = Comment
    fields = ['author_name', 'text']
    success_url = '/thanks/'
    template_name = 'tree.html'

我必须将一些数据(评论的父级)传递到数据库。它适用于 ModelForm,我将 parent 与 JS 传递到隐藏字段:

widgets = {'parent': widgets.HiddenInput}

如何用 CreateView 表单做同样的事情?

定义包含隐藏输入的模型形式class。

class CommentForm(ModelForm):
    class Meta:
        model = Comment
        fields = ('author_name', 'text', 'parent')
        widgets = {
            'parent': forms.HiddenInput,
        }

然后使用 form_class 属性在您的视图中使用该表单。

class CommentAdd(AjaxableResponseMixin, CreateView):
    form_class = CommentForm
    ...