Я работаю над страницей, которая содержит две формы. Одна из этих форм является регулярной: имя, описание, примечания и т. Д. Второй - это два раскрывающихся меню - Language
и Level
, где Level
прикован к Language
с использованием AJAX
.Как создать динамический набор форм из формы в Django/AJAX
Я хочу, чтобы эта форма появилась на странице столько раз, как user
. Так что ifthey заполнить Language
и Level
, появляется новая Language
и Level
форма ниже старой.
Проблема заключается в том, что если форма прикован, я должен идентифицировать каждую Language
и Level
отдельно, так что я не могу просто скопировать form
это повторить. (Может быть, я могу, но я не могу понять это, так как я новичок в AJAX).
Это create job
Джанго/html:
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% load static %}
{% block head %}
<script src="{% static "js/main.js" %}"></script>
{% endblock %}
{% block content %}
{% if user.is_authenticated %}
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %}
{{ language_form }}
<button value="Update" type="submit">Submit</button>
</form>
{% endif %}
{% endblock %}
Это JQuery:
$(document).on('change','#id_language',function(){
language_id = $(this).val();
request_url = '/get-highest-level/'+language_id+'/';
$.ajax({
url:request_url,
success: function(data){
var select = $('#id_level');
select.empty();
$.each(data, function (key,value) {
$('select[name="level"]').append('<option value="'+ key + '">'+value + '</option>');
});
return false;
}
})
});
И простой вид:
@login_required
def create_order(request):
language_form = LanguageLevelForm(request.POST or None)
return render(request,'auth/jobs/create-job-test.html',context={'language_form':language_form})
Я знаю, что это должно быть возможно использовать FormSet
, но я не могу понять, как заставить его работать с JQuery
.
Спасибо, я пытался сделать это с одной формой и formset тоже, но это не работает. Проще говоря, потому что нет класса. Я добавил html набора форм в нижней части моего вопроса –
О, это работает для прикованных форм, спасибо. Но я до сих пор не понял, как добавить его после заполнения. Первая форма заполняется -> появляется вторая форма и т. Д. –