Closed6
Djangoのチュートリアルをなぞってみる その4:管理画面
前回のスクラップの続き
Django公式チュートリアルをなぞっています。
今回は以下のページの終わりのほうからです。
管理画面のユーザを作成する。
$ python manage.py createsuperuser
Username (leave blank to use 'ubuntu'): admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
パスワードは適当な簡単なものを登録しようとすると、文字数が少ないとか文字種が少ないなどとうるさい。
http://localhost:8080/admin/
にブラウザでアクセスしてみる。
さきほど作成したadminでログインしてみると
以下のような編集をすると、pollsの管理メニューが出てくる。
diff --git a/mysite/polls/admin.py b/mysite/polls/admin.py
index 8c38f3f..6af8ff6 100644
--- a/mysite/polls/admin.py
+++ b/mysite/polls/admin.py
@@ -1,3 +1,5 @@
from django.contrib import admin
-# Register your models here.
+from .models import Question
+
+admin.site.register(Question)
レコードごとに編集の履歴が見れるようだ。
django_admin_log
というテーブルに履歴があるらしい。
sqlite> select * from polls_question;
1|What's up??|2023-08-05 13:59:13
sqlite> select * from django_admin_log;
1|1|What's up?|1|[{"added": {}}]|8|1|2023-08-05 13:59:15.322802
2|1|What's up?|2|[]|8|1|2023-08-05 13:59:25.409578
3|1|What's up??|2|[{"changed": {"fields": ["Question text"]}}]|8|1|2023-08-05 14:05:38.880200
書き忘れていたが、以下のような編集もしていた。管理画面のQuestionsの中のレコード一覧でレコードにテキストが表示されているのは、__str__
のおかげのようである。
diff --git a/mysite/polls/models.py b/mysite/polls/models.py
index dc981e8..7765fe5 100644
--- a/mysite/polls/models.py
+++ b/mysite/polls/models.py
@@ -3,8 +3,12 @@ from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField("date published")
+ def __str__(self):
+ return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
+ def __str__(self):
+ return self.choice_text
このスクラップは2023/08/06にクローズされました