Saya terjebak pada kemacetan yang telah saya coba selesaikan menggunakan dokumen resmi dan jawaban lain di sini di stackoverflow tetapi masih tidak dapat membuat pengguna super Django secara terprogram di lingkungan pohon kacang.
Keadaan saat ini - a. Aplikasi diterapkan dengan lancar dan saya dapat mengakses database dari aplikasi UI saya. pada dasarnya entri dibuat di beberapa tabel lain yang saya miliki di aplikasi.
Bagaimana saya mencoba membuat pengguna super -
A. Dengan meneruskan perintah kontainer -
Pilihan 1-
container_commands:
01_migrate:
command: "django-admin.py migrate"
leader_only: true
02_collectstatic:
command: "django-admin.py collectstatic --noinput"
commands:
super_user:
command: "source /opt/python/run/venv/bin/activate && python <appname>/createuser.py"
leader_only: true
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "<Appname>.settings"
PYTHONPATH: "/opt/python/current/app:$PYTHONPATH"
Di log - saya tidak melihatnya mencoba menjalankan perintah khusus.
Pilihan 2 -
container_commands:
01_migrate:
command: "django-admin.py migrate"
leader_only: true
02_collectstatic:
command: "django-admin.py collectstatic --noinput"
03_createsuperuser:
command: "source /opt/python/run/venv/bin/activate && django-admin.py createsuperuser"
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "<appname>.settings"
PYTHONPATH: "/opt/python/current/app:$PYTHONPATH"
Untuk ini, saya membuat file createsuperuser.py di bawah /management/commands/ mengikuti struktur init.py di kedua folder dan satu createsuperuser.py di bawah perintah -
from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
class Command(BaseCommand):
def handle(self, *args, **options):
if not User.objects.filter(username="admin").exists():
User.objects.create_superuser("admin", "[email protected]", "admin")
Mengenai hal ini, saya mendapat pesan berikut dari log -
Superuser creation skipped due to not running in a TTY. You can run `manage.py createsuperuser` in your project to create one manually.
Pertanyaan saya adalah -
mengapa saya tidak dapat membuat pengguna super dari baris perintah virtual env saya? Di dalamnya saya menerima pesan seperti ini -
raise ImproperlyConfigured("settings.DATABASES tidak dikonfigurasi dengan benar. " Django.core.Exceptions.ImproperlyConfigured: settings.DATABASES tidak dikonfigurasi dengan benar. Harap berikan nilai ENGINE. Periksa dokumentasi pengaturan untuk rincian lebih lanjut.
Agak aneh mengingat perintah makemigrations berfungsi dengan baik.
Dan ketika saya menggemakan $DJANGO_SETTINGS_MODULE, saya mendapatkan pengaturan yang tepat
nama aplikasi.pengaturan
Beri tahu saya di mana kesalahan saya dalam membuat pengguna super?