Выберите правильный выбор. Этот выбор не является одним из доступных вариантов. Ошибка Django

#python #django #django-errors

#python #django #django-ошибки

Вопрос:

Привет, я новичок в django и пытаюсь создать приложение, подобное Quora. Я хочу, чтобы пользователь отвечал на основе выбранного вопроса, который я получаю из списка элементов. Я написал представления на основе классов и функций, но получаю ту же ошибку «Выберите правильный выбор. Этот выбор не является одним из доступных вариантов. «

Models.py

     class Question(models.Model):
    current_user = models.ForeignKey(User,on_delete=models.CASCADE)
    question = models.TextField()
    question_date_pub = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return (self.question)
    
    def get_absolute_url(self):
        return reverse('questions')

class Answer(models.Model):
    current_user = models.ForeignKey(User,on_delete=models.CASCADE)
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    answer = models.TextField()

    def __str__(self):
        return self.answer
    
    def get_absolute_url(self):
        return reverse('questions')
  

Forms.py

    from django  import forms
from .models import Question,Answer
#
class AskQuestionForm(forms.ModelForm):
    
    class Meta:
        model = Question
        fields = ['current_user','question']
        widgets = {
            'current_user':forms.TextInput(attrs={'class':'form-control','id':"my_user_input","type":"hidden"}),
            'question':forms.Textarea(attrs={'class':'form-control'})
        }
class AnswerQuestionForm(forms.ModelForm):
    
    class Meta:
        model = Answer
        fields = ['current_user','question','answer']
        widgets = {
            'current_user':forms.TextInput(attrs={'class':'form-control','id':"my_user_input","type":"hidden"}),
            'question':forms.TextInput(attrs={'class':'form-control','id':"current_question"}),
            'answer':forms.Textarea(attrs={'class':'form-control'})

        }
  

Views.py

 def AnswerQuestionView(request,pk):
    
    question = Question.objects.get(pk=pk)
    if request.method  == "POST":
        form = AnswerQuestionForm(request.POST or None)
        if form.is_valid():
            form.save()
    else:
         form = AnswerQuestionForm()


    return render(request,'answer_question.html',{'form':form,'question':question})
  

Это представление на основе классов, также выдающее ту же ошибку

 class AnswerQuestionView(CreateView):
    model = Answer
    form_class=AnswerQuestionForm
    template_name = "answer_question.html"

    def get_context_data(self,*args,**kwargs):
        
        context = super(AnswerQuestionView,self).get_context_data(*args,**kwargs)
        question = get_object_or_404(Question,id=self.kwargs['pk'])
        
        context['question'] = question
        return context
  

Html-файл

 {% extends 'base.html'%}
{% load static %}
 <!--document.getElementById('current_question').value = "{{question}}";-->
{% block content %}
<div class="container">
    <form method="POST">
        {%csrf_token%}
        {{form.as_p}}
        <br>
        <button type="submit" class="btn btn-primary">Answer Question</button>
    </form>
</div>
 
<script>
    var question_clicked = "{{question}}"
    var name = "{{user.id}}"
    document.getElementById('my_user_input').value = name;
    document.getElementById('current_question').value =question_clicked;
    
    
</script>


{% endblock content%}
  

Комментарии:

1. Не могли бы вы опубликовать полную обратную трассировку?

2. К сожалению, у меня нет ошибок на моем терминале. Ошибка «выберите правильный выбор. Этот выбор не является одним из доступных вариантов» отображается только тогда, когда я хочу отправить свою форму