сохранение данных JS в шаблоне в переменную views.py Django
Нужна помощь, все что удалось найти не смог понять и применить. Нужно следующее: передать данные (которые отображаются из JS в шаблоне - <p id="address" class="value">) в views.py, сохранить в БД. Забирать и сохранять данные из input у меня получается по данному коду, а вот данные, которые в <p> не получается. Пробовал вариант с автозаполнением input из кода js, но тоже ничего не получилось. С помощью AJAX отправил POST запрос, но не могу понять, почему идет при запросе request.POST.get('address', None) разные результаты (см. views.py #). Как мне получить необходимый результат словаря "address" и сохранить в поле формы region_object. Буду благодарен за помощь.
object_create.html
<div class="addition">
<p class="title">Выбранный объект</p>
<p id="address" class="value"></p>
</div>
views.py
class ObjectCreateView(CreateView):
template_name = 'realestateworks/object_create.html'
form_class = ObjectForm
success_url = '/realestateworks/'
def get(self, request, *args, **kwargs):
form = self.form_class(initial=self.initial)
return render(request, self.template_name, {'form': form})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
print(request.POST)
# результат: 1. словарь 'address' и 'csrfmiddlewaretoken';
# 2. {'csrfmiddlewaretoken': ... ти другие поля формы, но без словаря 'address'
elem = request.POST.get('address', None)
print(elem)
# два результата: 'address' и второй результат None
if form.is_valid():
print(request.POST)
# выдает <QueryDict {'csrfmiddlewaretoken': ... без словаря "address"
object_f = form.save(commit=False)
object_f.region_object = request.POST.get('address', None)
object_f.save()
return HttpResponseRedirect('/realestateworks/')
return render(request, self.template_name, {'form': form})
js
function addressUpdate() {
var address = $.fias.getAddress('.js-form-address');
$('#address').text(address);
}
object_create.html (js & ajax)
<script language="JavaScript">
function myFunction() {
var address = $.fias.getAddress('.js-form-address');
$('#address').text(address);
$.ajax({
type: "POST",
url: "{% url 'object_create_url' %}",
data: {'address' : address, 'csrfmiddlewaretoken': '{{ csrf_token }}'}
});
}
</script>