с использованием django 1.11.7 & x-editable (самая последняя версия)
x-editable позволяет передавать на сервер следующие параметры:
- "pk" = pk ofobject
- "name" = имя поля, которое нужно изменить
- "value" = новое значение
Здесь отсутствует способ идентификации Djangoмодель.Конечно, этим можно управлять в представлении (где обрабатывается запрос POST), но это не универсальный способ обработки вещей, так как для этого требуется представление в соответствии с моделью Django.
Как мы можем получить этоповедение, при котором объекты из нескольких моделей Django можно редактировать с одной и той же HTML-страницы:
HTML:
<span>Model1/pk123/Field1:</span> <a href="#" class="xed"
data-model="django_model1" data-name="field1" data-type="text"
data-pk="123">dummy content</a>
<span>Model2/pk456/Field2:</span> <a href="#" class="xed"
data-model="django_model2" data-name="field2" data-type="text"
data-pk="456">another dummy content</a>
JAVASCRIPT:
$(document).ready(function () {
$.fn.editable.defaults.mode = 'inline';
$('.xed').editable({
params: {
csrfmiddlewaretoken:'{{csrf_token}}',
},
url: '/xed_post',
});
Проблема заключается в том, что "переменная data-model "не передается серверу, поэтому сервер не знает, в какой модели (DB TABLE) искать первичный ключ" pk "
Жесткое кодирование этой модели данных в коде javascriptвозможно:
$(document).ready(function () {
$.fn.editable.defaults.mode = 'inline';
$('.xed').editable({
params: {
csrfmiddlewaretoken:'{{csrf_token}}',
model:'django_model1'
},
url: '/xed_post',
});
... но тогда как мы можем заставить это работать для нескольких editbale django_models на страницу HTML?
Возможно, некоторая магия javascript может помочь здесь, чтобы получить правильную информацию вэта переменная 'модель'?
Спасибо за помощь