Εάν δεν υπάρχει υπερχρήστης στη μετεγκατάσταση, το Django θα δημιουργήσει έναν.
I have a migration that creates a superuser if it does not exist. <code>def create_superuser(apps, schema_editor): User = apps.get_model('auth', 'User') if not User.objects.filter(username='admin').exists(): User.objects.create_superuser('admin', 'admin@example.com', 'password') class Migration(migrations.Migration): dependencies = [ ('myapp', '0001_initial'), ] operations = [ migrations.RunPython(create_superuser), ] </code>
Η πρώτη γραμμή δημιουργεί μια συνάρτηση που θα δημιουργήσει έναν υπερχρήστη εάν δεν υπάρχει ήδη.
Η δεύτερη γραμμή λαμβάνει το μοντέλο χρήστη από την εφαρμογή "auth".
Η τρίτη γραμμή ελέγχει εάν υπάρχει χρήστης με το όνομα χρήστη «admin». Αν όχι,
Η τέταρτη γραμμή δημιουργεί έναν υπερχρήστη με όνομα χρήστη «admin», διεύθυνση email «admin@example.com» και κωδικό πρόσβασης «password».
Η πέμπτη και η έκτη γραμμή δημιουργούν μια κλάση μετεγκατάστασης και καθορίζουν ότι εξαρτάται από τη μετεγκατάσταση «0001_initial» στην εφαρμογή «myapp».
Η έβδομη γραμμή καθορίζει ότι η μετεγκατάσταση πρέπει να εκτελεί τη συνάρτηση «create_superuser».
Τι είναι ένας Superuser
Ένας υπερχρήστης είναι ένας χρήστης με δικαιώματα διαχειριστή σε έναν ιστότοπο Django. Μπορούν να κάνουν πράγματα όπως τη δημιουργία και τη διαχείριση μοντέλων, προβολών και εφαρμογών.