diff --git a/README.md b/README.md index 5db6a7f89ddcd4bffbf09124554879a61b6d3193..ae711e5a0aad7cdffd034bd74ceea0d5a6476db7 100644 --- a/README.md +++ b/README.md @@ -74,13 +74,15 @@ If successful, you can now see the running server in your browser at `http://127 ## Populate the database with test data To populate the database with some test data run ``` -python manage.py seed_db [-y] [--seed SEED] +python manage.py seed_db [-y] [--seed SEED] [--no-superuser] ``` -All the existing data from your database will be lost! +All the existing data from your database will be lost! +Per default a super user called "admin" will be created for development. +You will be prompted for a password. Run `python manage.py seed_db --help` for more information. ## Use the django admin interface to view and edit data during development If you started the server as described above, you can access the django admin interface on [localhost:8000/admin](localhost:8000/admin). -If you seeded the database you can login with username: "admin" and password: "password" +If you seeded the database you can login with username: "admin" and the password you specified. diff --git a/unisportomat/quiz/management/commands/seed_db.py b/unisportomat/quiz/management/commands/seed_db.py index 7e6fc5b7434b946091af5a22352b72761ea1ffbf..31f0e9c44073ac1f8ef9641429ea1443efe5f817 100644 --- a/unisportomat/quiz/management/commands/seed_db.py +++ b/unisportomat/quiz/management/commands/seed_db.py @@ -6,7 +6,6 @@ You can call this by python manage.py seed_db import random from django.core.files.uploadedfile import SimpleUploadedFile -from django.contrib.auth import get_user_model from django.core.management import call_command from django.core.management.base import BaseCommand from quiz.models import ( @@ -45,6 +44,11 @@ class Command(BaseCommand): default=42, help="Optional seed for random generator. Defaults to 42", ) + parser.add_argument( + "--no-superuser", + action="store_true", + help="No super user shall be created", + ) def handle(self, *args, **options): """Create some objects for all models""" @@ -53,8 +57,9 @@ class Command(BaseCommand): call_command("flush", "--no-input" if options["yes"] else []) # Create admin user for using django admin interface during development - admin = get_user_model().objects.create_superuser("admin", password="password") - admin.save() + if not options["no_superuser"]: + self.stdout.write("\nSpecify admin password for development:") + call_command("createsuperuser", "--username=admin", "--email=''") # Seed random generator to make this script deterministic random.seed(options["seed"]) diff --git a/unisportomat/quiz/tests.py b/unisportomat/quiz/tests.py index dda0956fbd98496fcd7f870fe403453501bb25ba..7da52b5256d83ae06a862b92c44a150abca86fa6 100644 --- a/unisportomat/quiz/tests.py +++ b/unisportomat/quiz/tests.py @@ -266,7 +266,7 @@ class SeedingTest(TestCase): """If seed_db is called then there exists a certain number of elements per model""" # call the seed command without asking for confirmation - call_command("seed_db", ["--yes"]) + call_command("seed_db", ["--yes", "--no-superuser"]) n_sports = 5 n_criteria = 5