Écrivez automatiquement admin.py à l'aide de la commande admin_generator de django-extensions

Chose que tu veux faire

Lorsqu'il y a beaucoup de tables, il est difficile d'écrire dans admin.py. Je veux que vous le fassiez automatiquement.

Si vous utilisez la commande ʻadmin_generator de la bibliothèque appelée django-extensions`, il le fera automatiquement. Il fait un bon travail selon le contenu de models.py.

Que sont les extensions django?

django-extensions étend la fonctionnalité de manage.py, et il existe de nombreuses autres commandes.

Installation

Installer

$ pip install django-extensions

Ajoutez simplement à settings.py

pj_name/settings.py


.
.
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'django_extensions', # <-Postscript
]
.
.

Courir

Remplacez le résultat de sortie dans admin.py.

$ APP est le nom de l'application créée par $ python manage.py startapp xxx.

$ python manage.py admin_generator $APP > $APP/admin.py

résultat

Par exemple, cette classe

models.py


...
class Users(models.Model):
    user_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    first_name = models.CharField(max_length=255)
    email = models.CharField(max_length=255)
    created_at = models.DateTimeField()
    updated_at = models.DateTimeField()
    del_flg = models.IntegerField()

    class Meta:
        managed = False
        db_table = 'users'
...

Comme ça

admin.py


...
@admin.register(Users)
class UsersAdmin(admin.ModelAdmin):
    list_display = (
        'id',
        'user_name',
        'last_name',
        'first_name',
        'email',
        'created_at',
        'updated_at',
        'del_flg',
    )
    list_filter = ('created_at', 'updated_at')
    date_hierarchy = 'created_at'
...

Créez un utilisateur pour vous connecter à l'écran de gestion

$ python manage.py createsuperuser

Username (leave blank to use 'anata_no_home_dir'): <-N'importe quel nom
Email address: <-Toute adresse e-mail
Password: <-mot de passe
Password (again):  <-encore
Superuser created successfully.

Démarrer le serveur local

$ python manage.py runserver

Accédez ici http://127.0.0.1:8000/admin/ スクリーンショット 2020-08-21 13 21 13

C'est OK si la table login-> est affichée avec les informations utilisateur créées précédemment.

La fin

Merci d'avoir lu jusqu'au bout.

Recommended Posts

Écrivez automatiquement admin.py à l'aide de la commande admin_generator de django-extensions
Comment écrire une interface graphique à l'aide de la commande maya
Cloner à l'aide de la commande dd
Exécutez la commande COPY en utilisant Psycopg de python
Ecrire un serveur TCP à l'aide du module SocketServer
Mise en évidence de la syntaxe sur la ligne de commande à l'aide de Pygments
Exécutez Route53 sur la ligne de commande à l'aide de l'AWS-CLI.
Écrire des données dans KINTONE à l'aide du module de requêtes Python
Je veux automatiser ssh en utilisant la commande expect!