首页 > 解决方案 > 表单中的 Django 动态字段

问题描述

我的应用程序的一个要求是让用户能够创建调查。对于每个调查,用户应该能够添加任意数量的问题。我试图通过首先定义我的模型和表单来实现这一点。

# models.py.
from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)

    def __str__(self):
        return self.question_text


class Survey(models.Model):
    survey_name = models.CharField(max_length=200)
    questions = models.ForeignKey(Question, on_delete=models.CASCADE)

    def __str__(self):
        return self.survey_name
#forms.py
from django import forms

class Survey(forms.Form):
    survey_name = forms.CharField(required=200)
    #TODO: define questions

我被困住了。在我的表单模块中,我如何定义调查和问题之间的一对多关系,以便用户为他们创建的每个调查添加和定义问题。

标签: pythondjangodjango-modelsdjango-formsdjango-templates

解决方案


您可以按照本教程使用 django制作动态表单, 或者您可以使用 javascript 使用 javascript动态输入来让用户创建任意数量的字段。并使用这些字段在视图中request.POST.getlist("html input field name"),然后插入到模型中。


推荐阅读