Идея такая: фильтром выбрать из базы несколько элементов (вопросов к тесту). Далее надо выводить эти элементы по одному. Сначала выводим первый вопрос теста, когда пользователь ответил - второй, и так далее. И чтобы это происходило без обновления страницы. Не могу понять как это реализовать. Как отслеживать какой вопрос выведен и как выбирать следующий, после ответа. Вроде как нужен ajax. Если да, то что писать во вью. И в запросе?
def index(request, course_id, test_task_id):
test = Test_task.objects.get(id = test_task_id)
test_question_list = Test_question.objects.filter(test_task = test_task_id)
for t in test_question:
answer_test_list = Answer_test.objects.filter(test_question = t.id)
if request.user.is_authenticated():
if request.method == "POST" and request.is_ajax():
#что делать если на вопрос ответили
else:
#как вывести первый вопрос
context = {'test': test,'test_question' : test_question, 'answer_test' : answer_test, 'course_id':course_id}
return render(request, 'test_task/test_task.html', context)
else:
return redirect("user_profile:login_view")
Все вопросы выводятся так:
<h3>Тест. {{ test.name_test }}</h3>
<div class="question-panel">
{% for t in test_question %}
<div class="question_text" data-num="{{t.id}}">
{{t.question_text|linebreaksbr}}
</div>
<div class="list-group"><div>
{% for answer in answer_test %}
<a id="v_1" class="list-group-item questvariant" data-num="{{answer.id}}"> {{ answer.answer }}</a>
{% endfor %}
</div></div>
{% endfor %}
</div>
Пыталась как-то так делать запрос:
$(" .questvariant").click( function(e){
e.preventDefault();
var quest_id = $(".question_text").data("num");
var var_id = $(this).data("num");
var data = {
'quest_id' : quest_id,
'var_id' : var_id,
};
alert(data);
$.ajax({
type: "POST",
url: "/test/1/1/",
data: data,
cache: false,
success: function(data){
}
});
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
столкнулся с проблемой, в общем на сайте в body должен быть отключен скролл, а у левого блока он должен присутствовать, все работает, но только...
В моем шаблоне есть горизонтальное меню - обычное ul с ссылкамиИспользую фреймворк Skeleton, поэтому шаблон адаптивный