Django 管理页面不显示数据库表(djangobook 第 06 章)

Posted

技术标签:

【中文标题】Django 管理页面不显示数据库表(djangobook 第 06 章)【英文标题】:Django admin page doesn't show tables of database (djangobook chapter 06) 【发布时间】:2012-07-11 03:57:07 【问题描述】:

我正在做 djangobook 第 06 章中的 Activating the Admin Interface 部分。在该部分结束时,必须运行开发服务器并转到 http://127.0.0.1:8000/admin/

但是我看到了这个:

而不是这样的东西(来自 djangobook):

这很奇怪,因为我的 mysql 数据库表中存储了数据,该表链接到 settings.py 文件中的 django 项目。

这是我的 django 项目的 settings.py 文件中的 DATABASES 字典:

DATABASES = 
    'default': 
        'ENGINE': 'mysql',
        'NAME': 'mydb',                   
        'USER': 'root',                      
        'PASSWORD': 'mypass',                 
        'HOST': 'localhost',                    
        'PORT': '',                      
    

mysql 提示符显示如下:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mydb               |
+--------------------+
3 rows in set (0.00 sec)

mysql> use mydb;
mysql> show tables;
+----------------------------+
| Tables_in_mydb             |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_message               |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| books_author               |
| books_book                 |
| books_book_authors         |
| books_publisher            |
| django_admin_log           |
| django_content_type        |
| django_session             |
+----------------------------+
14 rows in set (0.00 sec)

为什么我在管理页面中看不到 mydb 的内容?

可能相关:

mysql> select User from mysql.user;
+------------------+
| User             |
+------------------+
| root             |
| debian-sys-maint |
| root             |
| root             |
+------------------+
4 rows in set (0.00 sec)

【问题讨论】:

【参考方案1】:

你需要继续阅读http://django-book.readthedocs.org/en/latest/chapter06.html#adding-your-models-to-the-admin-site

还有一个关键部分我们还没有完成...... 在书籍目录 (mysite/books) 中,创建一个名为 admin.py,然后输入以下代码行:

from django.contrib import admin
from mysite.books.models import Publisher, Author, Book

admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)

【讨论】:

以上是关于Django 管理页面不显示数据库表(djangobook 第 06 章)的主要内容,如果未能解决你的问题,请参考以下文章

django模板分页器

在 Django 管理更改/添加页面中显示 ForeignKey 数据

Django 管理屏幕不按名称显示实体

django 默认权限对应表怎么修改

django - 当我想在卡片/索引页面上显示内容时,我没有从数据库中看到任何内容

如何在 Django 管理列表显示页面中编辑 ManyToManyField?