Dojango - Dojo + Django, Как да обвия django.contrib.auth и django-регистрация за AJAX, използване на една страница

Нов съм в Dojo и Django. Въпреки това, опитвам се да напиша приложение с една страница и не разбирам как да използвам вградените инструменти за удостоверяване на Django, тъй като те са проектирани около традиционния модел на Django страница на изглед.

Бих искал да имам всички формуляри, както специфични за моето приложение, така и за удостоверяване и django-регистрация, показани в <div dojoType="dijit.layout.contentPane" id="mainPane"></div>. Усвоих изгледите, изобразени като @json_response на Dojango за показване; обаче не знам как да "опаковам" съществуващите изгледи, така че да не очакват зареждане на страници.

Има ли някаква конвенционална стратегия за едностранични Django приложения? Харесвам ORM на Django и потребителския интерфейс на Dojo, но те изглеждат трудни за пълно интегриране. Благодаря.

##############################################################
#         #                                        #         #
#  LOGOUT #                                        #  DISP   #
#         ##########################################         #
#  REGSTR #                                        #  DISP   #
#         #  MAINPANE                              #         #
#  DO_IT  #                                        #  DISP   #
#         #  Forms, views, etc.                    #         #
#  CNTRL  #  using dojo.xhrGET, xhrPUT             #  DISP   #
#         #                                        #         #
#  QUIT   #                                        #  DISP   #
#         #                                        #         #
#         ##########################################  DISP   #
#         #                                        #         #
#         # STATUS: MESSAGE                        #         #
#         #                                        #         #
##############################################################

Редактиране: Само за да бъда по-ясен, искам поток като този:

  1. Потребителят кликва върху бутона „DO_IT“.
  2. Dojo xhr ПОЛУЧАВА формуляра DO_IT и заменя съдържанието на MAINPANE с него.
  3. Потребителят прави нещо с формата DO_IT и dojo xhrPOSTs действието на потребителя.
  4. Dojo заменя съдържанието на MAINPANE с отговора.
  5. Печалба

Кой е най-добрият/конвенционалният/често срещаният/най-документираният начин за постигане на това. Знам, че вероятно има много възможни подходи. Търся нещо, което е по-малко лесно за ф@#$-нагоре като начинаещ.


person justinzane    schedule 29.10.2011    source източник


Отговори (1)


Доста си го изписал. Django изгледът може просто да върне парчето HTML, което искате в #MAINPANE div, и вие го вмъкнете, като зададете свойството .innerHTML на възела MAINPANE.

След като потребителят е влязъл, цялото удостоверяване трябва да се случи автоматично дори при повикванията на Ajax, така че не е нужно да се притеснявате за това. Но трябва да обмислите какво ще се случи, ако удостоверяването е неуспешно - в крайна сметка може просто да изхвърлите съобщение 403 Permission Denied във вашия #MAINPANE div.

Има няколко други тънкости в този вид дизайн на уеб страница - най-вече става невъзможно да се маркират страници, освен ако не предоставите някъде връзка "permalink", която ви отвежда до страницата с необходимото съдържание, заредено в MAINPANE div. И натискането на презареждане в браузъра предизвиква изненада, когато не презарежда текущия изглед на страницата, а скача обратно към изгледа „начало“.

Или можете просто да го направите по старата школа с етикети FRAME :)

person Spacedman    schedule 30.10.2011