2017-03-07 99 views
0

在我的previous问题,我最近问如何在HTML中使用Django 1.9显示forms.py。现在,这是完成即时通讯尝试做一个按钮,当选择已经完成(在这种情况下它是单选按钮),它会发布到数据库,并继续问问题。如何保存到数据库点击

目前我试图让它在我的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一个**,而多个允许... **多个**选项! –

+0

@nik_m是的,我看到你有复选框给你的解决方案,但Radiobutton更适合我的需求。 (不要从我的查询中获得帮助) –

+0

好!没问题!正如下面的答案一样,使用['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())