FerromanСпасибо. Посмотрел Ваши ссылки. Понял что и как. Но не до конца.
Вопросов пара:
1) Делаю следующем образом:
Это тот шаблон (не весь, а избранное), что вызывается после пункта - “добавить объявление” - “Купить”:
<div id="contentContainer"></div>
<div id="ListContainer">
<ul id="contentList" class="contentList">
<li id="photo_add">Add photo</li>
<li id="descr_add">Add description</li>
<li id="panorama_add">Add panorama</li> <!-- тут можно добавить видео -->
</ul>
</div>
Далее, там же в шаблоне:
<script>
$('#panorama_add').click(function () {
$("#contentContainer").load("Autoring1/form_upload.html"); <!-- Тут вопрос -->
});
</script>
Form_upload.html - это простой html файл, для отображения формы для закачки.
Его представление:
def save_view_panorama(request):
if request.method == 'POST':
form = PanoramaForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('ok/')
else:
form= PanoramaForm()
template = form_upload.html'
return render_to_response(template,
{'form': form},
context_instance=RequestContext(request))
Соответственно form_upload.html один и тот же для всех видов контента. Но для каждого объекта модели (для каждого класса в файле моделей) он разный, т.е. соответствует запрошенной форме.
На всяк случай form_upload.html:
#form_upload.html:
{% extends "base.html" %}
{% block title %}Add{% endblock %}
{% block content %}
<h1>Upload {{ object }} </h1>
{% if form.errors %}
<p style="color: black; background: magenta; "> Requered fields: {{ form.errors|pluralize }} </p>
{% endif %}
<form action="" method="post" enctype="multipart/form-data" >{% csrf_token %}
{{ form.as_p }}<br>
<input type="submit" name="submit" value="Upload" id="submit">
</form>
{% endblock %}Т.е. первый вопрос следующий: Если у меня один и тот же шаблон, в который долбят разные функции представления, то как в этот динамический контент
$("#contentContainer").load("Autoring1/form_upload.html");передать, что именно для этой модели я передаю форму залива? Иначе говоря, как можно джаваскрипту понять, что form_upload.html вызывается именно для ЭТОГО конкретного типа контента (panorama, а не photo, к примеру)?
2) Когда я нажимаю, добавить объяву -> купить, как браузеру понять то, что вот форма, для заполнения динамического контента ассоциированна именно с “купить”, а не с “продать” или “сдать”..? Т.е. нажал “объява” -> “купить” -> “кнопка ”Добавить объяву“” и появляется эта динамическая форма для добавления необходимых компонентов (фото, панорамы…). Я добавил то что захотел и как сообщить серверу что я добавил именно для ЭТОЙ объявы, а не для другой какой и чтоб он записал изменения для нее (этой модели).
Заранее спасибо, сорри за простыню.