Python 一种形式中的多个实例

Python 一种形式中的多个实例,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,尝试实现投票创建系统,在这里我可以创建带有选项的问题(以前我都是在管理员中创建的,并且必须为每个选项创建一个单独的选项对象) 以下是我的模型: class Question(models.Model): has_answered = models.ManyToManyField(User, through="Vote") question_text = models.CharField(max_length=80) date = models.DateTimeField(

尝试实现投票创建系统,在这里我可以创建带有选项的问题(以前我都是在管理员中创建的,并且必须为每个选项创建一个单独的选项对象)

以下是我的模型:

class Question(models.Model):
    has_answered = models.ManyToManyField(User, through="Vote")
    question_text = models.CharField(max_length=80)
    date = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.question_text


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=100)
    votes = models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text
现在,这是模板:

<form method="post" action="">{% csrf_token %}
    {{ question_form.question_text }}
    <br><br>
    <!--{{ choice_form.choice_text|placeholder:"Choice" }}-->
    <input class="choice" name="choice_text" placeholder="Choice" type="text" />
    <input class="choice" name="choice_text" placeholder="Choice" type="text" />
    <input class="choice" name="choice_text" placeholder="Choice" type="text" />

    <img src="{% static 'images/plus.png' %}" class="add_choice" />
    <br>

    <button class="submit" type="submit">Create question</button>


</form>
知道为什么吗?以下是我的看法:

def questions(request):
    question_form = QuestionForm(request.POST or None)
    choice_form = ChoiceForm(request.POST or None)
    if request.POST:
        choice = request.POST.getList('choice_text')
        print(choice)
    if request.user.is_authenticated():
        if question_form.is_valid():
            print('valid question')
            #question = question_form.save(commit=False)

    return render(request, 'questions.html', {'question_form': question_form, 'choice_form': choice_form})

那么,我应该怎样做才能抓住每一个选项输入呢?最后,我想让所有这些选择映射到输入的问题。但正如我所说的,我确信同一个字段的多个实例是否可能以一种形式出现。

尝试使用
getlist
而不是
getlist

也考虑使用,特别是在您的场景中可能有用。

def questions(request):
    question_form = QuestionForm(request.POST or None)
    choice_form = ChoiceForm(request.POST or None)
    if request.POST:
        choice = request.POST.getList('choice_text')
        print(choice)
    if request.user.is_authenticated():
        if question_form.is_valid():
            print('valid question')
            #question = question_form.save(commit=False)

    return render(request, 'questions.html', {'question_form': question_form, 'choice_form': choice_form})