0

質問を表示して、ユーザーに1〜5の投票として評価してもらいたいと思います。5つのラジオボタン。質問が生成されましたが、ユーザー用に5つのオプションを作成する方法がわかりません。

目標は、ユーザーが送信ボタンをクリックして(選択肢を選択した後)投票するたびに、質問と評価をcsvファイルにエクスポートすることです。質問と選択した評価(1、2、3、4、または5)をファイルに書き出す必要があります。これを始めるのに助けが必要です。

4

2 に答える 2

0
from django import forms
from django.forms import ModelForm
from django.db import models

class Poll(models.Model):
    RATING_CHOICES = [(i,i) for i in range(1,6)]
    question = models.TextField()
    rating = models.PositiveSmallIntegerField(choices=RATING_CHOICES)


class PollForm(ModelForm):
    class Meta:
        model = Poll
        fields = ('question', 'rating')
        widgets = {'rating': forms.RadioSelect}

あなたの見解では、あなたは次のようなものを持っているでしょう:

import csv

from django.http import render_to_response, HttpResponseRedirect
from myproject.forms import PollForm

def myview(request):
    context = {}
    if request.method == 'POST'
        form = PollForm(request.POST)
        if form.is_valid():
            obj = form.save()
            with open('foo.csv', 'ab') as f:  # Shamelessly stolen from Yuji
                writer = csv.writer(f)
                writer.writerow([obj.question, obj.rating])
            return HttpResponseRedirect('somesuccesspage')
    # More boring code here to handle the GET requests and stuff..
    context['form'] = form
    return render_to_response('somepath/mytempplate.html', context)

上記のコードを実行していませんが、それは確かにあなたが始めるためのものです。

于 2012-10-02T20:50:15.123 に答える
0

ファイルに書き込む一般的な考え方は次のとおりです。「A」、「B」、「C」をデータに置き換えます。

おそらく、フォーム、request.POST['selected_choice'] などから来ています。

import csv

with open('foo.csv', 'ab') as f:
    writer = csv.writer(f)
    writer.writerow(['A', 'B', 'C'])
于 2012-10-02T20:23:25.077 に答える