Często zadawane pytania: Używanie Django

Dlaczego otrzymuję błąd dotyczący importu DJANGO_SETTINGS_MODULE?

Upewnij się, że:

  • The environment variable DJANGO_SETTINGS_MODULE is set to a fully-qualified Python module (i.e. mysite.settings).
  • Wspomniany moduł jest na sys.path (import mysite.settings powinno zadziałać).
  • Moduł nie zawiera błędów składniowych.

Nie mogę znieść waszego języka szablonów. Czy muszę go używać?

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ć.

Czy muszę używać waszej warstwy modelu/bazy danych?

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.

Jak używać pól grafik i plików?

Użycie klas FileField lub ImageField w modelu wymaga kilku kroków:

  1. In your settings file, you’ll need to define MEDIA_ROOT as the full path to a directory where you’d like Django to store uploaded files. (For performance, these files are not stored in the database.) Define MEDIA_URL as the base public URL of that directory. Make sure that this directory is writable by the web server’s user account.
  2. Dodaj FileField lub ImageField do swojego modelu, ustawiając opcję upload_to na podkatalog MEDIA_ROOT, aby używać go dla załadowanych plików.
  3. Wszystkim, co będzie przechowywane w twojej bazie danych jest ścieżka do pliku (względna do 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 }}.

Jak stworzyć zmienną dostępną we wszystkich moich szablonach?

Czasem wszystkie twoje szablony potrzebują tej samej rzeczy. Powszechnym przykładem mogą być dynamicznie generowane menu. Na pierwszy rzut oka wydaje się logiczne dodać wspólny słownik do kontekstu szablonu.

Najlepszym sposobem, by zrobić to w Django, jest użycie RequestContext. Szczegóły jak to zrobić znajdziesz tutaj: Using RequestContext.

Back to Top