Django моделирует и рассматривает функции, не вызываемые - PullRequest
0 голосов
/ 07 декабря 2011

Я использую реализацию на основе django http://blueimp.github.com/jQuery-File-Upload/ (библиотека загрузки с перетаскиванием на основе JQuery) (версия django - https://github.com/sigurdga/django-jquery-file-upload), и настроена небольшая секциябольшого проекта для использования этой формы, которая сама устанавливается как приложение

Когда я перехожу к форме через / upload / new (URL-адрес «по умолчанию», предоставленный приложением), все фантастично -все работает точно так же, как и должно. Однако, когда я встраиваю форму в отдельную веб-страницу (/ a / b или что-то еще), нажатие кнопки «upload» предоставляет пользователю «Ошибка: SyntaxError: JSON.parse: неожиданный символ».Я немного покопался, и кажется, что независимо от того, что я делаю, функции в models.py и views.py никогда не вызываются - даже если форма построена правильно (или, по-видимому, правильно, в любом случае)

Так как models.py и views.py не вызываются при доступе к форме как части большой страницы в / a / b, как я могу заставить их вызывать их функции такими, какие они есть при навигации по viа / загрузить / новый?

1 Ответ

0 голосов
/ 05 апреля 2013

Я использовал код загрузки файла с аутентификацией пользователя и столкнулся с подобной проблемой.Первый уровень отладки был выполнен с помощью инструментов разработчика Google Chrome (CTL + SHift + I).

Вкладка «Сеть» показала, что JSON должен быть возвращен, в то время как форма HTML Error возвращается, следовательно, ошибка синтаксического анализа json (синтаксическая ошибка).

переопределить класс form_invalid, чтобы увидеть, вызывает ли форма ошибку ....

def form_invalid(self, form):
    print form
    return super(MyClass, self).form_invalid(form)

Затем я создал пользовательскую форму и использовал form_class для передачи своей пользовательской формы.Мне пришлось сохранить пользователя, который загрузил файл.Я сохранил пользователя вот так ...

self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()

PS Это мой первый пост на stackoverflow .. прошу прощения за все, что противоречит протоколу публикации ответов ...

...