代码之家  ›  专栏  ›  技术社区  ›  ozo

如何将手工创建的表单转换为django表单?

  •  0
  • ozo  · 技术社区  · 6 年前

    我正在开发一个调查应用程序。这个应用程序运行良好,但是我没有使用django表单。出于安全原因,现在我想能够使用django表单。然而,我被困在这个应用程序中是因为它有一些特殊之处,使得转换变得困难。尽管我已经阅读了stackoverflow中的文档和许多文章,但我没有找到方法来完成它。

    问题是:

    我必须遵循什么方法才能将其转换为django表单?我认为有几个特殊性需要牢记:

    1。 我想手动呈现表单,因为它使用了bootstrap,我想维护一些美学类型的细节。

    2。 所有问题都加载在同一页上,最后是send按钮,因此可以说它是一个表单。

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

    0 回复  |  直到 6 年前
        1
  •  1
  •   Kevin D.    6 年前

    您可以使用通用编辑视图,了解更多信息; 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