Так что я пытаюсь создать скрипт, который задал бы пользователям несколько вопросов и на основе ответов, которые они выбрали, выполнить действие. Я новичок в Django, так что я до сих пор не уверен в том, как она полностью работает, и поэтому я основывая свой код отключения учебника найти на их сайте (пока я не получить лучшее понимание) https://docs.djangoproject.com/en/1.9/intro/tutorial01/Django 1.9 read value from request.POST
модели .py
@python_2_unicode_compatible
class Question(models.Model):
question_text = models.CharField(max_length=300)
def __str__(self):
return self.question_text
@python_2_unicode_compatible
class Option(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
option_text = models.CharField(max_length=400)
def __str__(self):
return self.option_text
views.py
def select(request, question_id):
question = get_object_or_404(Question, pk=question_id)
try:
selected_option = question.option_set.get(pk=request.POST['option'])
except (KeyError, Option.DoesNotExist):
return render(request, 'awsservers/detail.html', {
'question':question,
'error_message': "You did not select an option.",
})
if selected_option:
# run code here
return HttpResponseRedirect(reverse('awsservers:extra', args=(question.id,)))
detail.html
<h2>{{ question.question_text }}</h2>
<form action="{% url 'awsservers:select' question.id %}" method="post">
{% csrf_token %}
{% for option in question.option_set.all %}
<input type = "radio" name = "option" id = "option{{ forloop.counter }}" value = "{{ option.id }}" />
<label for = "option{{ forloop.counter }}">{{ option.option_text }}</label><br />
{% endfor %}
<br>
<input type="submit" value="Select" />
</form>
<a href="{% url 'awsservers:index' %}">Go Back</a>
Я застрял в views.py. Я хотел бы прочитать значение selected_option, чтобы я мог выполнить требуемое действие на основе выбранного.
if selected_option == 'value':
perform action
elif selected_option == 'value2':
perform other action
Я не понимаю, какие ошибки вы столкнулись. Не можете ли вы просто использовать 'selected_option'? или 'selected_option.option_text' – AbdealiJK
извините, если я не объяснил вопрос правильно. к моему пониманию - когда пользователь выбирает параметр, он сохраняется в «selected_option». Я пытаюсь прочитать, какой вариант они выбрали, и я также не уверен, в каком формате он хранится в «selected_option», но, глядя на html-код, кажется, что идентификатор опции хранится в переменной, поэтому я хотел бы прочитать переменную и проверить, выбрал ли пользователь вариант 1, затем выполнить действие. –