You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django新手求助:Admin视图无法显示数据库模型

解决Django模型无法在Admin视图显示的问题

嘿,作为Django新手遇到这个问题太正常啦!我帮你一步步排查和解决:

最核心的原因:忘记在Admin中注册模型

Django不会自动把你的模型加到Admin后台,必须手动在对应app的admin.py里注册它。你需要做的是:

  1. 打开你的Blog app目录下的admin.py(如果没有就新建一个)
  2. 加入以下代码:
from django.contrib import admin
from .models import Blog

# 注册Blog模型到Admin后台
admin.site.register(Blog)

检查models.py里的小问题

看你给出的代码,还有两个需要修正的地方,不然可能会导致其他错误(间接影响Admin显示):

  • app_name = 'Blog'不应该放在models.py里,这个是用来做URL命名空间的,应该移到该app的urls.py文件中。
  • publish字段的default = ...没有补全具体值,你需要改成default='draft'(对应你定义的PUBLISH_CHOICES里的选项),不然模型迁移会失败,Admin自然也看不到模型。

修正后的models.py核心代码:

from django.db import models

PUBLISH_CHOICES = (
    ('draft','Draft'),
    ('publish','Publish'),
    ('private','Private'),
)

class Blog(models.Model):
    id = models.BigAutoField(primary_key = True)
    title = models.CharField(max_length = 200)
    body = models.CharField(max_length = 500, null = True)
    publish = models.CharField(max_length = 120, choices = PUBLISH_CHOICES, default='draft')
    # 建议加上这个方法,让Admin里显示文章标题而非默认的"Blog object"
    def __str__(self):
        return self.title

最后确认App已添加到INSTALLED_APPS

确保你的Blog app已经在项目根目录的settings.py的INSTALLED_APPS列表里:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Blog',  # 这里必须包含你的app名称
]

做完这些步骤后,运行python manage.py makemigrations和python manage.py migrate(如果之前有迁移错误的话),然后重启服务器,再访问Admin后台就能看到你的Blog模型啦!

内容的提问来源于stack exchange,提问作者Dipesh Sinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:07:05