Я хочу использовать тот же шаблон "createchapter.html".
Другими словами, я хочу сделать ссылку на «createchapter /? Step = 1.html», «createchapter /? Step = 2.html», «createchapter /? Step = 3.html».
Я использую Django 2.1.5, поэтому у меня мало ресурсов или вопросов и ответов для изучения.
В urls.py
urlpatterns = [
(.....)
url(r'^createbook/$',viewsSentence.createbook),
url(r'^createchapter/<int:step>$',viewsSentence.createchapter),
]
В views.py
@csrf_exempt
@csrf_protect
def createchapter(request,path):
if request is not None:
if request.GET.get('step') is None:
context1 = {
'books': book.objects.order_by('titleOrigin'),
'step': 1,
}
#useless: return HttpResponse('/?step=1',context1)
redirect("createchapter.html",context1,step=1)
elif request.GET.get('step') == 2:
context2 = {
'step': 2,
}
redirect("createchapter.html", context2,step=2)
В createchapter.html
{% if step == 1 %}
<form>
{% csrf_token %}
<div class="form-group">
<i class="fas fa-forward"></i>
<label for="select-books">Step 1: select a book</label>
<select class="form-control" id="select-books">
{% for book in books %}
<option value="{{ book.id }}">{{ book.titleOrigin }}</option>
{% endfor %}
</select>
</div>
</form>
<div class="d-flex justify-content-center">
<i class="fas fa-arrow-alt-circle-right"><a id="createchapter-step2">Step 2</a></i>
</div>
{% elif step == 2%}
<div class="form-group">
<i class="fas fa-forward"></i>
<label>Step 2: set numbers of chapters</label>
</div>
{% endif %}
Вот как я вызываю вторую страницу (я использую ajax):
$("#createchapter-step2").click(function(){
var selectedbookId = $("#select-books option:selected").val();
$.ajax({
url: '/createchapter/?step=2',
type:'get',
data:{
'selectedbookId':selectedbookId,
csrfmiddlewaretoken: $( "#csrfmiddlewaretoken" ).val(),
},
});
});
Сообщение об ошибке:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/createchapter/?step=1/