У меня есть шаблон Django, который отображает таблицу, содержащую Django formsets.Получение идентификатора формы в редакторе, который редактируется
шаблона (упрощенный)
<table id = 'my_table'>
{% for form in my_formset %}
<tr><td>{{form.my_field}}</td></tr>
{% endfor %}
</table>
Теперь у меня есть код Jquery, который выглядит примерно так:
$(document).on('change', '#my_table tr input[type = text], input[type = number]', function(){
// currently the following code handles save event
// $.post ('/save_my_form/', $form.serialize())
});
И соответствующий вид Джанго
def save_my_form(request):
# .......
for form in order_draft_formset:
if form.is_valid():
form.save()
# .......
В проблема с этим подходом заключается в том, что я изменяю только один сингл входной элемент в одной форме, тогда как представление Django проходит через весь набор форм. Вопрос в том, есть ли встроенный способ Django для извлечения формы, в которой локализован модифицированный вход, поэтому я сохраняю только эту точную форму в своем представлении, не пройдя весь набор форм. Я чувствую, что JQuery должен каким-то образом представить некоторую информацию через параметры после запроса, которые помогут Django сделать это. На данный момент я думаю о разборе автоматически созданного Django id, f.e, id_form-5-my_field и получения «5» из него в JQuery и передачи этого «5» в Django. Но у меня есть ужасное чувство, что это «грязный» метод, и должен быть более чистый способ сделать это. Есть идеи по этому поводу?
Да, практичный и элементарный. Не думал об этом. Спасибо) –