Django项目未创建应用时,模型注册后无法在Admin中显示
问题解决:未创建应用时Django Admin不显示模型
核心原因
Django Admin只会自动扫描INSTALLED_APPS中注册的应用内的admin.py文件。你直接在项目根目录写的admin.py,Django不会主动加载,所以就算注册了模型也不会在后台显示。
规范解决方法(推荐)
Django的设计逻辑就是基于应用(App)组织代码,不创建应用属于非常规操作,建议按规范流程处理:
- 执行命令创建应用:
python manage.py startapp customers - 把你写的
Customer模型移到customers/models.py文件中 - 把Admin注册代码移到
customers/admin.py文件中 - 在项目的
settings.py里,将'customers'添加到INSTALLED_APPS列表 - 重启Django服务,刷新Admin后台就能看到
Customer模型了
临时 workaround(不推荐)
如果执意不想创建应用,可以把项目根目录注册为"伪应用":
- 打开项目
settings.py,找到INSTALLED_APPS列表,添加你的项目根目录名称(比如项目文件夹叫myproject,就加'myproject') - 确保项目根目录下存在
__init__.py文件(创建项目时默认自带) - 重启服务后,Admin会加载根目录的
admin.py,模型就能正常显示
你的代码参考
原models.py
from django.db import models from django.contrib.auth.models import User class Customer(models.Model): user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE) name = models.CharField(max_length=200, null=True) email = models.CharField(max_length=200, null=True) def __str__(self): return self.name
原admin.py
from django.contrib import admin from .models import Customer admin.site.register(Customer)
内容的提问来源于stack exchange,提问作者Shahzaib Ali
相关产品推荐
相关产品推荐

