2017-01-27 3 views
0

Я использую django для создания приложения-запроса, я разрешаю пользователям добавлять вопросы на сайт с несколькими необязательными ответами для каждого вопроса, которые определены пользователь, который задал вопрос. Я хочу отобразить дополнительные ответы в раскрывающемся списке. но я продолжаю получать ошибку от моей модели, говорящей, что опция 1 не определена.можно сохранить значения формы в выпадающем списке в django

Выбор модальной

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 

вид

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

Если у вас есть аргумент 'choice', и вы пытаетесь предоставить пользовательские значение, то проверка вашей формы завершится неудачно. –

ответ

0

Почему бы вам не попробовать, чтобы удалить параметры по умолчанию, а затем повторите то же самое:

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

вы используете option_one как переменную, и это не определено. вы можете использовать его как строку типа «option_one» или можете определить ее раньше, как option_one = «все, что вы хотите определить .....»

Смежные вопросы