#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. К сожалению, у меня нет ошибок на моем терминале. Ошибка «выберите правильный выбор. Этот выбор не является одним из доступных вариантов» отображается только тогда, когда я хочу отправить свою форму