Ahoj Martine!
To, na co jsi narazil je opravdu common problém, který má ovšem sakra hodně řešení.
Tak za A bych řekl, že jde o veliké duplikování kódu, protože pokud chceš opravdu "renderovat" html na frontendu pomocí JS, tak musíš mít stejnou šablonu napsanou ve dvou jazycích tj. django template a nějaký JS (React, angular, handlebars, yourmother.js), což je naprostá kravina, že :)
My to vyřešili tak, že všechno renderuje django a máme xhr middleware, který zjistí, že se vrací ajaxem "snippet", což je kus stránky v JSON (jsou tam třídy a identifikátor, který říká, která část stránky se má přerenderovat) a následně se kus stránky pouze nahradí html kodem, který přijde přes ajax. Na tohle HTML se pak naváží znova javascriptový listenery.
Musím říct, že tohle řešení je asi nejlepší, pokud chceš mít šablony napsané v django template.
Pokud to takhle mít nechceš, tak bych v současné době udělal to, že bych si pustil process v nodu na serveru vedle djanga a donutil django, aby se vykašlalo na renderování svých šablon a ale prostě poslal dotaz na tenhle process v Nodu přes TCP, kde by mu v POSTu poslalo JSON všech context dat, které normálně chodí do šablony a nechal v nodu vykreslit šablonu, která by se django vrátila jako html a django ho pak pošlu do prohlížeče.
Node je javascript, že jo, takže to můžeš mít napsané v Angularové šabloně (nejsem si tim zcela jistej, jeslti to jde) nebo v handlebars.js (to jde určitě) nebo v Reactu (to je celkem kick-ass řešení, přihlédnu-li k tomu, jak to pak sviští na frontendu, protože react pozná, že je html vyrenderované serverem a na clientu pak nic nepřekresluje, jenom se "připne" k vyrenderovanému HTML - tenhle stack používá Abdoc (Source) pro svoje aplikace a weby, docela zajímavé technologie, snoubí eleganci Django - backendu a rychlost a luxus frontendu v Javascriptu, vše přitom server-side rendered)
Dne sobota 31. ledna 2015 18:29:31 UTC+1 Martin Tiršel napsal(a):