Добрый день.
Есть заказ на создание сайта на Django. Заказчик прислал готовый макет сайта на html5. Я переработал макет, добавив шаблонные теги, создал базу и т. п. Все работает нормально. Но потом заказчик захотел добавить форму заявки на сайт. Прислал новый код. Там используется мультизагрузчик uploadify. Но не могу понять как получить от него данные из формы и файлы.
Попробовал применить совет данный на форуме этого мультизагрузчика, но все равно ничего не получается.
Вот html код:
<section class="content__page">
<a class="content__close" href="#"></a>
<div class="js-customScroll">
<form class="request">
<header>
<h1>Заявка на экспресс-анализ кадастровой стоимости</h1>
<p>Если у вас есть гарнитура, то нажмите эту кнопку и вы сразу позвоните нам</p>
</header>
<div class="column-1">
<div class="inner-content">
<label>Ваше имя</label><br />
<input class="rfield" id="user-name" type="text"><br />
<label>Ваш телефон</label><br />
<input class="rfield" id="user-telephone" type="tel"><br />
<label>Кадастровый номер (через запятую)</label><br />
<input class="rfield" id="user-kad-number" type="text"><br />
<button class="send-request">Отправить заявку</button>
</div>
</div>
<div class="column-2">
<div class="inner-content">
<div class="uploader-box">
<input id="file_upload" name="file_upload" type="file" multiple="true">
<p class="description">Требуемые документы: кадастровые паспорта, технические паспорта и др.</p>
</div>
</div>
</div>
</form>
<script src="{% static 'js/plugins/jquery.uploadify.min.js' %}"></script>
<script type="text/javascript">
$('#file_upload').uploadify({
'buttonText' : 'Прикрепить файлы',
'width' : '250',
'height' : '38',
'line-height' : '34',
'png' : '{% static 'img/add_file_btn_bg.png' %}',
'uploader' : '/upload'
'swf' : '{% static 'uploadify.swf' %}',
});
$('.uploadify-queue').insertAfter('.description');
</script>
</div>
</section>
Вот часть кода моей базовой вьюхи:
def main(request):
if request.method == 'POST':
for f in request.POST:
print f.value
for f in request.FILES:
print f.name
Код вьюхи upload не привожу так как он вообще не используется почему-то.
Код миддлеваре:
from django.conf import settings
from django.core.urlresolvers import reverse
class SWFUploadMiddleware(object):
def process_request(self, request):
if (request.method == 'POST') and (request.path == reverse('main.views.upload')) and \
request.POST.has_key(settings.SESSION_COOKIE_NAME):
request.COOKIES[settings.SESSION_COOKIE_NAME] = request.POST[settings.SESSION_COOKIE_NAME]
Ну и в urls.py:
url('^upload$', upload),
Т.е. вроде как должно обращаться к этой вьюхе upload, но этого вообще не происходит. Запрос идет к вьюхе main которая у меня на урле '/' и при этом в посте ничего не передается а в гете передается только название файла который я гружу. Данные из полей формы вообще куда-то исчезают.
Пробовал прописать в форме method='POST', тогда в посте передается csrf_token и название файла и все.
Пробовал смотреть в инете на те пакеты которые сделаны для Django на основе uploadify, но так и не понял что не работает у меня. И они все рассчитаны только на загрузку файлов, а у меня форма с загрузкой файлов и набора полей.
Отказаться от uploadify пробовал, но заказчик настаивает.
Помогите разобраться, плз. Что я делаю не так?