Upewnij się, że:
sys.path
(import mysite.settings
powinno zadziałać).Zdarza nam się myśleć, że nasz silnik szablonów jest najlepszą rzeczą od czasu grubo krojonego bekonu, ale uznajemy, że wybór języka szablonów jest niemal kwestią religii. Nie ma nic w Django, co wymusza korzystanie z języka szablonów, więc jeśli jesteś przywiązany do Jinja2, Mako lub czegokolwiek innego, możesz ich używać.
Nie. Tak jak system szablonów, warstwa modelu/bazy danych jest uniezależniona od reszty frameworka.
Jedynym wyjątkiem jest: jeśli używasz innej biblioteki bazodanowej, nie możesz używać automatycznie generowanego panelu administracyjnego Django. Ta aplikacja jest związana z warstwą bazodanową Django.
Użycie klas FileField
lub ImageField
w modelu wymaga kilku kroków:
MEDIA_ROOT
jako pełną ścieżkę do katalogu, gdzie chciałbyś aby Django przechowywało załadowane pliki. (Dla wydajności te pliki nie są przechowywane w bazie danych.) Określ MEDIA_URL
jako bazowy publiczny URL tego katalogu. Upewnij się, że konto użytkownika web-serwera ma prawo zapisu do tego katalogu.FileField
lub ImageField
do swojego modelu, ustawiając opcję upload_to
na podkatalog MEDIA_ROOT
, aby używać go dla załadowanych plików.MEDIA_ROOT
). Najprawdopodobniej zechcesz używać wygodnego atrybutu url
Django. Na przykład jeśli twoje ImageField
nazywa się portret
, możesz uzyskać bezwzględną ścieżkę do swojego zdjęcia w szablonie przez {{ object.portret.url }}
.Czasem twoje szablony po prostu wszystkie potrzebują tej samej rzeczy. Powszechnym przykładem mogą być dynamicznie generowane menu. Na pierwszy rzut oka wydaje się logiczne po prostu dodać wspólny słownik do kontekstu szablonu.
Poprawnym rozwiązaniem jest użycie RequestContext
. Szczegóły odnośnie jego użycia znajdziesz tutaj: Using RequestContext.
mar 30, 2019