# Τεκμηρίωση του Django - 5.2.8

# Συχνές Ερωτήσεις: Χρησιμοποιώντας το Django

## Why do I get an error about importing `DJANGO_SETTINGS_MODULE`?

Σιγουρευτείτε ότι:

- The environment variable `DJANGO_SETTINGS_MODULE` is set to a fully-qualified Python module (i.e. `mysite.settings`).

- Το παραπάνω module (π.χ «mysite.settings») βρίσκεται μέσα στο `sys.path` (το `import mysite.settings` θα πρέπει να δουλεύει).

- The module doesn’t contain syntax errors.

## Δεν αντέχω τη γλώσσα των templates σας. Είμαι υποχρεωμένος να τη χρησιμοποιώ;

Τυγχάνει να πιστεύουμε ότι η μηχανή των templates μας είναι ότι καλύτερο συνέβη μετά το μπέϊκον αλλά αναγνωρίζουμε την δυνατότητα επιλογής ανάμεσα σε γλώσσες templates η οποία είναι καθαρά υποκειμενική. Το Django δεν απαιτεί να χρησιμοποιήσετε τη δική του template γλώσσα, οπότε αν θέλετε μπορείτε να χρησιμοποιήσετε τις Jinja2, Mako, ή οποιαδήποτε άλλη επιθυμείτε.

## Είναι υποχρεωτικό να χρησιμοποιώ το δικό σας επίπεδο μοντέλων/βάσεις δεδομένων;

Όχι. Όπως ακριβώς με το σύστημα των templates έτσι και το επίπεδο των μοντέλων/βάσεις δεδομένων είναι απόλυτα διαχωρισμένο από το υπόλοιπο framework.

Η μοναδική εξαίρεση είναι η εξής: Αν χρησιμοποιήσετε μια διαφορετική βιβλιοθήκη βάσης δεδομένων, δε θα έχετε στη διάθεση σας το αυτόματα-παραγόμενο Django admin site. Αυτή η εφαρμογή (admin site) είναι συνδεδεμένη με το επίπεδο της βάσης δεδομένων του Django.

## Πως χρησιμοποιώ τα πεδία ImageField και FileField;

Απαιτούνται μερικά βήματα για να επωφεληθείτε των πεδίων `FileField` ή/και `ImageField` που είναι δηλωμένα σε ένα μοντέλο:

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. Προσθέστε το πεδίο `FileField` ή/και το `ImageField` στο μοντέλο σας, προσδιορίζοντας το όρισμα `upload_to` προκειμένου να προσδιοριστεί ο υπο-φάκελος του `MEDIA_ROOT` που θα χρησιμοποιηθεί για τα ανεβασμένα αρχεία σας. Αν π.χ έχετε ορίσει την επιλογή `MEDIA_ROOT` ως «mysite/media_remote/» και το όρισμα `upload_to` ως «images/avatars/» τότε όλες οι εικόνες θα αποθηκευτούν στη τοποθεσία «mysite/media_remote/images/avatars/».

3. Το μόνο που θα αποθηκευτεί στη βάση δεδομένων σας είναι το μονοπάτι στο αρχείο (σχετικό του `MEDIA_ROOT`). Το πιο πιθανό είναι να χρησιμοποιήσετε το βολικό attribute `url` που σας παρέχει το Django. Για παράδειγμα, αν το `ImageField` ονομάζεται `mug_shot`, μπορείτε να δείτε το απόλυτο μονοπάτι (absolute path) της εικόνας σας, στο template, ως `{{ object.mug_shot.url }}`.

## Πως μπορώ να κάνω μια μεταβλητή ορατή σε όλα τα templates;

Sometimes your templates all need the same thing. A common example would be dynamically generated menus. At first glance, it seems logical to add a common dictionary to the template context.

The best way to do this in Django is to use a `RequestContext`. Details on how to do this are here: Using RequestContext.