Codez,
Par variantiem:
1) Lajauts būs viens un tas pats, jo lapa būs responsive. Tomēr, ja vajag, tad...
{% if mobile %}{% extends "layouts/mobile.html %}{% else %}{% extends "layouts/desktop.html %}{% endif %}
Lai tas nebūtu jāraksta visur, var uztaisīt templeit-tegu: `{% extend_layout %}`.
2) Te laikam nav nekāds baigais pārsteigums, ka runāju par Django freimvorku. Ir divi varianti: konteksta procesors, kas templeitam pados jau gatavus mainīgos. Tie pirms tam _ir izrēķināti_ Python/PHP kodā, tā kā nav problēmas izdomāt. Šis te derētu `request`, `user` utml. mainīgajiem. Otrs variants ir midlvēris, kura princips ir gaužām vienkāršs: kustom klase ar predefinētām metodēm, kuras izpildās pirms rekvesta, pēc responsa, pirms templeit-renderinga un pēc, ja neklūdos. Tad derētu piemēram mioddlvērim, kas nosaka valodu pēc IP un redirektē lietotāju uz citu linku.
Māri,
Es saprotu, bet vienkārši vēlos izskaidrot domu — neliekas, ka tam vajadzētu būt kontrolerī. Tāpēc, ka kontroleris atgriež kkādus datus un tālāk templeits pats izdomā, vai tas ir HTML, JSON vai XML Javas 3rd-party API.
Tā ir MVC core-doma, ka loģika ir sadalīta. Katrs dara savu lietu, lai, pavisam vienkārši, **nebūtu mess**.