【问题标题】:How to transform manually created form to a django forms?如何将手动创建的表单转换为 django 表单?
【发布时间】:2019-09-28 18:06:57
【问题描述】:

我目前正在开发一个调查应用程序。该应用程序运行良好,但是我没有使用 django 表单就做到了。现在,出于安全原因,我希望能够使用 Django 表单。但是我被卡住了,因为该应用程序具有某些使过渡变得困难的特性。虽然我已经阅读了 stackoverflow 中的文档和许多帖子,但我没有找到方法。

问题是:

我必须遵循什么方法才能将其转换为 django 形式?我认为需要牢记以下几点:

1.我想手动渲染表单,因为它使用引导程序,并且我想维护几个美学类型的细节。

2.所有问题都加载在同一个页面上,最后是发送按钮,可以说是一个表单。

3. 输入的名称是问题的 ID,这一点很重要,因为我必须知道问题和该问题的答案。 (我认为这是主要问题之一,因为输入的名称应该是在 forms.py 中创建的表单中的字段名称,但是对于每个问题都会更改输入的属性名称)

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    您可以使用通用编辑视图以获取更多信息; https://docs.djangoproject.com/en/2.2/ref/class-based-views/generic-editing/

    通过使用 CreateView 可以自动创建 ModelForm

    #views.py
    
    from forms import AnswerCreateForm    
    
    class AnswerCreateView(CreateView):
        model = Answer
        form_class = AnswerCreateForm
    

    然后您可以在 forms.py 中处理您的验证

    #forms.py
    
    class AnswerCreateForm(ModelForm):
    
        class Meta:
            model = Answer
            fields = []
            etc.
    

    可以使用 bootstrap 手动呈现表单,请在此处阅读更多内容,它确实需要相当多的代码。我会先使用 {{ form }} 测试表单,然后手动渲染相同的表单。

    https://docs.djangoproject.com/en/2.2/topics/forms/#rendering-fields-manually

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 2012-05-21
      相关资源
      最近更新 更多