2017-01-27 3 views
0

zu speichern Ich benutze Django, um eine Fragen-Anwendung zu machen, ich erlaube Benutzern, Fragen auf der Website mit ein paar optionalen Antworten für jede Frage, die von definiert sind der Benutzer, der die Frage gestellt hat. Ich möchte die optionalen Antworten in einer Dropdown-Box anzeigen. aber ich bekomme immer wieder einen Fehler von meinem Modell und sage, dass Option 1 nicht definiert ist.ist es möglich, Formularwerte in einer Dropdown-Liste in Django

Wahl modal

class Choice(models.Model): 
    question = models.ForeignKey(Question, on_delete=models.CASCADE) 

    CHOICES = (
     (option_one,option_one), 
     (option_two,option_two), 

    ) 
    user_choice = models.CharField(
     max_length=200, 
     choices=CHOICES, 
     default=Yes, 
    ) 

    votes = models.IntegerField(default=0) 

    def __str__(self): 
     return self.user_choice 

Ansicht

def create_poll(request): 

    if request.method == 'POST': 
     form = CreatePollForm(request.POST) 
     if form.is_valid(): 
      question = form.cleaned_data['question'] 
      option_one = form.cleaned_data['option_one'] 
      option_two = form.cleaned_data['option_two'] 
      print option_one 
      q = Question.objects.create(question_text=question) 
      o = Choice.objects.create(question=q, option_one=option_one,option_two=option_two) 
      q.save() 
      o.save 

      form = CreatePollForm() 
      return render(request, 'polls/createPolls_form.html', {'form':form}) 

    form = CreatePollForm() 
    return render(request,'polls/createPolls_form.html',{'form':form}) 

forms.py

class CreatePollForm(forms.Form): 
     question = forms.CharField(max_length=100) 
     option_one = forms.CharField(max_length=100) 
     option_two = forms.CharField(max_length=100) 
+0

Wenn Sie 'Auswahlen' Argument haben, und Sie versuchen, benutzerdefinierte bereitzustellen Wert, dann würde Ihre Formularvalidierung fehlschlagen. –

Antwort

0

Warum versuchen Sie nicht die Standardoptionen zu entfernen, und dann versuchen, gleich:

class Choice(models.Model): 
    question = models.ForeignKey(Question, on_delete=models.CASCADE) 

    user_choice = models.CharField(
     max_length=200, 
     default=Yes, 
    ) 

    votes = models.IntegerField(default=0) 

    def __str__(self): 
     return self.user_choice 
0

Sie verwenden option_one als Variable und das ist nicht definiert. Sie können es als String wie 'option_one' oder definieren Sie es früher wie option_one = 'was auch immer Sie definieren möchten .....'

Verwandte Themen