2017-03-07 6 views
0

私のprevious質問では、最近Django 1.9でforms.pyをHTMLで作成する方法を尋ねました。これは、選択が行われたとき(この場合はラジオボタン)、データベースにポストし、質問者と一緒に移動するボタンを作成しようとしているからです。クリックするとデータベースに保存する方法

現在私はそれを私のviews.pyに投稿しようとしていますが、私はそれがデータを送信することに運がないのです。

def question1(request): 
    question_form = QuestionForm() 
    if request.method == 'POST': 
     form = QuestionForm(request.POST) 
     if form.is_valid(): 
      return render(request, 'music.questions2,html') 
    return render(request, 'music/question1.html', locals()) 

この問題を解決するための助けに本当に感謝します。

+0

。それは本当に、ラジオボタンまたは複数のボタンですか?覚えておいてください:ラジオボタンは、ユーザーが** ony one **を選択できるようにしますが、複数の場合は... **複数の**ものを許可します! –

+0

@nik_mはい、私はあなたが私に与えたソリューションのチェックボックスを持っているのを見ましたが、Radiobuttonsは私のニーズに適していました。 (私の質問であなたの助けを奪ってはならない) –

+0

OK!問題ない!両方の答えが[form.save() '](https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#the-save-method)を使用してください。これは、 'ModelForm'から継承した' form'を持つことを意味し、Modelと関連付けられます。さもなければ、Djangoは "接続"を知らないのでデータを保存することができません。 –

答えて

1
def question1(request): 
    question_form = QuestionForm() 
    if request.method == 'POST': 
     form = QuestionForm(request.POST) 
      if form.is_valid(): 
       form.save() # save to db! 
       return render(request, 'music.questions2,html') 
    return render(request, 'music/question1.html', locals()) 

# models.py 
class Question(models.Model): 
    # Q_CHOICES is the previous declared one 
    question = models.CharField(max_length=20, choices=Q_CHOICES) 

# forms.py 
class QuestionForm(forms.ModelForm): 
     class Meta: 
      model = Question 
      fields = ['question'] 
      widgets = { 
       'question': forms.RadioSelect() 
      } 
1

用途:form.save()

def question1(request): 
    if request.method == 'POST': 
     form = QuestionForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return render(request, 'music.questions2,html') 
    else: 
     form = QuestionForm() 
    return render(request, 'music/question1.html', locals()) 
関連する問題