Jestem w pełni zadowolony z dość jednowymiarowych implementacji Django, ale teraz próbuję zrozumieć proces z wieloma witrynami i współdzielonymi treściami.Wstępna konfiguracja Django Sites Framework
Przeczytałem w witrynie Django Sites Framework i wiele postów na ten temat, ale nie mam podstaw, jak uruchomić drugą witrynę, która korzysta z tej samej bazy danych, ale prezentuje się jako osobna nazwa domeny .
Mam bardzo szczęśliwą i książkową stronę django składającą się z jednej aplikacji uruchomionej w projekcie.
Aby korzystać żargonie tutoriali zacząłem projekt "mysite" ze
django-admin.py startproject mysite
a następnie rozpoczął aplikację "polls" z
manage.py startapp polls
Q1: Czy Miejsca ramowego zakładać, że każda strona jest osobnym projektem lub oddzielną aplikacją?
Druga aplikacja "polls2" w ramach projektu wydaje się mieć sens, ale plik settings.py, w którym zdefiniowana jest identyfikacja SITE_ID, wydaje się być sprawą całego projektu. Czy istnieje sposób na dostosowanie ustawień aplikacji?
Drugi proj "mysite2" obok "mysite" dałby mi drugą strukturę z własnymi settings.py i oddzielną SITE_ID, ale wtedy wydaje się, że duże naruszenie zasady "DRY", jak bym był powielając wiele elementów sąsiedniego projektu siostrzanego.
Q2: Wygląda na to, że będę musiał przedefiniować modele bazy danych (models.py) w relacje wiele do wielu w celu udostępniania danych między lokacjami. Czy to po prostu zmienia sposób, w jaki Django uzyskuje dostęp do tych tabel, czy też konieczna jest przebudowa istniejącej bazy danych witryny?
Twoje wskazówki na temat tego, jak zamierzony proces wdrażania ram witryn byłby wspaniały i doceniany.
Dzięki za szczegółowe odpowiedzi. Trochę wyjaśnień - kiedy mówisz "Wybierasz, która strona chcesz uruchomić ..." czy to podejście pozwala na jednoczesne działanie OBIEKTÓW? To naprawdę nie jest jeden lub drugi cel dla mnie, oba muszą działać. Wciąż to wchłania. Najprawdopodobniej musisz wskoczyć i spróbować (i mam nadzieję, że nie zepsuję tego zbyt wiele :) – RossGK
Oczywiście - podczas programowania wystarczy uruchomić dwa wystąpienia serwera deweloperskiego Django w tym samym czasie, po jednym dla każdej witryny. Podczas produkcji dodaje się dwie oddzielne reguły do konfiguracji serwera WWW, po jednym dla każdego miejsca. –