Django - 在不同类型的模型中保存选定的投票选择(不是投票数)

时间:2015-07-27 17:11:58

标签: django django-models django-forms django-admin

我在保存所选择的民意调查中遇到了困难。

例如,我创建问题和选择,并且它们彼此链接(如Django教程)。在本教程中,每次参与者选择答案时,所选的选项将保存为投票数(代码:selected_choice.votes += 1)。我想做的不仅仅是保存整个答案,而不仅仅是数字。

这是保存票数的代码:

def vote(request, question_id):
    p = get_object_or_404(Question, pk=question_id)
    try:
        selected_choice = p.choice_set.get(pk=request.POST['choice'])
    except (KeyError, Choice.DoesNotExist):
        return render(request, 'polls/detail.html', {
            'question': p,
            'error_message': "You didn't select a choice.",
        })
    else:
        selected_choice.votes += 1
        selected_choice.save()
        return HttpResponseRedirect(reverse('polls:results', args=(p.id,)))

我还创建了另一个类Fill,它要求参与者在进行民意测验之前填写一些信息。我想要的是所选择的选项也保存在这类模型中。这些图片将描述我试图解释的内容。 1s图片中的红色圆圈是所选选项旨在保存的位置。第二张图片中的红色圆圈是保存的投票数。

enter image description here

enter image description here

这是在CharField类型中创建的Q1,Q2,Q3代码,用于存储选定的选项。

class Fill(models.Model):
    Q1 = models.CharField(max_length=200, default='')
    Q2 = models.CharField(max_length=200, default='')
    Q3 = models.CharField(max_length=200, default='')

如果有人能帮助我,我真的很感激。 谢谢。

P / s:我的一般想法是将所选择的选项保存在收集的同一个人数据列表中,以便了解第一张图片中描述的每个人的选择。所以如果你知道其他任何方式,而不是在不同的课程中进行,请赐教。

1 个答案:

答案 0 :(得分:1)

您需要跟踪每个用户(可能使用request.user)作为模型中的ForeignKey,并在模型中包含您想要的任何其他字段。这样,每个响应都与用户绑定。

https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ForeignKey