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

# Συχνές Ερωτήσεις: Το admin site

## Δε μπορώ να συνδεθώ. Όταν εισάγω τα σωστά username και password, επαναφορτώνεται η ίδια login σελίδα, χωρίς μηνύματα σφάλματος.

Το cookie που αφορά το login δεν έχει σεταριστεί σωστά, επειδή το domain του cookie που έστειλε το Django δεν ταιριάζει με το domain στον browser σας. Δοκιμάστε να θέσετε τη ρύθμιση `SESSION_COOKIE_DOMAIN` μέσα στο γενικό αρχείο ρυθμίσεων ούτως ώστε να ταιριάζει με το domain σας. Για παράδειγμα, αν επισκέπτεστε τη σελίδα “https://www.example.com/admin/” με τον browser, τότε στο γενικό αρχείο ρυθμίσεων του project σας, “myproject.settings”, θα θέσετε τη ρύθμιση `SESSION_COOKIE_DOMAIN` = ‘www.example.com’.

## Δε μπορώ να συνδεθώ. Όταν εισάγω τα σωστά username και password, επαναφορτώνεται η ίδια login σελίδα, με ένα σφάλμα που λέει “Παρακαλώ εισάγετε το σωστό username και κωδικό”.

Εάν είστε σίγουροι ότι το όνομα χρήστη και ο κωδικός σας είναι σωστά, σιγουρευτείτε ότι η τιμή της ρύθμισης `is_active` και `is_staff`, του λογαριασμού σας, είναι True. Το admin site επιτρέπει την είσοδο μόνο σε άτομα που η τιμή και των δύο αυτών πεδίων είναι True.

## Πως μπορώ να σετάρω μια τιμή ενός πεδίου πάνω στον χρήστη που αλληλεπίδρασε τελευταίος με κάποιο object μέσω του admin;

Η κλάση `ModelAdmin` παρέχει παραμετροποιήσιμα hooks τα οποία σας επιτρέπουν να επιδράσετε με ένα object πριν και μετά την αποθήκευση του, χρησιμοποιώντας πληροφορίες από το request. Αντλώντας τον τρέχον χρήστη από το request και κάνοντας override τη μέθοδο (ή hook, αν θέλετε) `save_model()`, μπορείτε να αλλάξετε το object προκειμένου να δείχνει στον user που το άλλαξε. Δείτε στο εγχειρίδιο σχετικά με τις μεθόδους του ModelAdmin για παραδείγματα.

## Πως μπορώ να περιορίσω την πρόσβαση στο admin site ούτως ώστε τα objects να τα επεξεργάζονται μόνο οι χρήστες που τα δημιούργησαν;

Η κλάση `ModelAdmin` παρέχει, επίσης, επιπλέον hooks (μεθόδους, αν θέλετε) τα οποία σας επιτρέπουν να ελέγχετε την προβολή ή όχι καθώς και την δυνατότητα επεξεργασίας των objects στο admin. Χρησιμοποιώντας την ίδια μέθοδο άντλησης του user από το request, οι μέθοδοι `get_queryset()` και `has_change_permission()` μπορούν να χρησιμοποιηθούν προκειμένου να ελέγξετε την προβολή ή όχι καθώς και την δυνατότητα επεξεργασίας των objects στο admin.

## Τα αρχεία CSS και οι εικόνες δουλεύουν στο admin-site μου χρησιμοποιώντας τον development server, αλλά όχι όταν χρησιμοποιώ το mod_wsgi.

Δείτε στο εξυπηρετώντας τα αρχεία του admin μέσα στο εγχειρίδιο “Πως να χρησιμοποιήσω το Django με το mod_wsgi”.

## Η επιλογή “list_filter” περιέχει ένα πεδίο τύπου ManyToManyField, αλλά το φίλτρο δεν εμφανίζεται.

Το Django δεν θα εμφανίσει το φίλτρο για πεδία τύπου `ManyToManyField` αν υπάρχουν λιγότερα από δύο συσχετισμένα objects.

Για παράδειγμα, αν η επιλογή `list_filter` περιέχει τα sites και υπάρχει μόνο ένα site στη βάση δεδομένων σας, το φίλτρο “Ιστότοποι” δεν θα εμφανιστεί. Δεν έχει νόημα να φιλτράρετε κάτι αν υπάρχει μόνο ένα αποτέλεσμα!

## Μερικά objects δεν εμφανίζονται στο admin.

Αυτό οφείλετε συνήθως όταν έχετε ένα object του οποίου το `ForeignKey` δείχνει σε κάποιο ανύπαρκτο object όπου αυτό το foreign key έχει δηλωθεί μέσα στο `list_display`. Αυτό το object δεν θα εμφανιστεί στη σελίδα changelist του admin γιατί το Django model δηλώνει ένα integrity contraint το οποίο δεν υλοποιείται από τη βάση δεδομένων. Με άλλα λόγια, σε επίπεδο database, οι γραμμές δεν συνάδουν μεταξύ τους είτε γιατί λείπει κάποιο foreign key είτε γιατί κάποιο foreign key field λανθασμένα είναι `null=False`.

## Πως μπορώ να παραμετροποιήσω τη λειτουργία του admin interface;

Έχετε πολλές επιλογές. Αν θέλετε να ενεργήσετε πάνω στη φόρμα προσθήκη/αλλαγή που το Django δημιουργεί αυτόματα, μπορείτε να εφαρμόσετε δικά σας JavaScript modules στη σελίδα, μέσω της παραμέτρου js parameter της κλάσης Admin του μοντέλου. Αυτή η παράμετρος είναι στην ουσία μια λίστα με URLs, σαν strings, τα οποία δείχνουν σε JavaScript modules τα οποία θα συμπεριληφθούν στην φόρμα του admin μέσω του tag `<script>`.

Αν θέλετε περισσότερη ελευθερία από το να πειράξετε την αυτόματα παραγόμενη φόρμα, μπορείτε να γράψετε δικά σας views για το admin. Το admin υποστηρίζεται από το ίδιο το Django και γι’ αυτό το λόγο μπορείτε να γράψετε δικά σας views τα οποία μπορούν να “πατήσουν” π.χ πάνω στο authentication system ή να ελέγξουν για permissions ή οτιδήποτε άλλο μπορείτε να φανταστείτε.

Αν θέλετε να αλλάξετε την εμφάνιση του, διαβάστε την επόμενη ερώτηση.

## Το δυναμικά παραγόμενο admin site είναι άσχημο! Πως μπορώ να το αλλάξω;

Μας αρέσει, αλλά αν διαφωνείτε, μπορείτε να αλλάξετε την εμφάνιση του επεξεργάζοντας τα αρχεία CSS και/ή τις εικόνες. Το site χτίστηκε χρησιμοποιώντας semantic HTML και πολλά CSS hooks κάτι το οποίο σημαίνει ότι όποιες αλλαγές θελήσετε να κάνετε δεν έχετε παρά να επεξεργαστείτε τα αρχεία CSS.

## Ποιους browsers υποστηρίζει το admin;

Το admin παρέχει πλήρη λειτουργικότητα για τους YUI’s A-grade browsers, με εξαίρεση τον IE6, ο οποίος δεν υποστηρίζεται.

Υπάρχει πιθανότητα να υπάρχουν κάποιες μικρές στυλιστικές διαφορές μεταξύ των υποστηριζόμενων browsers. Για παράδειγμα, μερικοί μπορεί να μην υποστηρίζουν τις στρογγυλεμένες γωνίες. Αυτά θεωρούνται αποδεκτές διαφοροποιήσεις στο rendering.