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.
django-extensions
étend la fonctionnalité de manage.py
, et il existe de nombreuses autres commandes.
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
]
.
.
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
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'
...
$ 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/
C'est OK si la table login-> est affichée avec les informations utilisateur créées précédemment.
Merci d'avoir lu jusqu'au bout.
Recommended Posts