我刚刚开始使用Django 1.11开始我的第一个项目。我遵循了我在多个Django 1.10项目中使用的相同步骤,但出于某种原因,我的模型没有显示在我的localhost / admin站点上。
来自settings.py的我的INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home.apps.HomeConfig',
]
我的admin.py:
from django.contrib import admin
from home.models import Home
# begin Admin Class Definitions
class HomeAdmin(models.ModelAdmin):
fieldsets = [
('Title', {'fields': ['title']}),
('Publication Date', {'fields': ['pub_date']}),
('Home Page Text', {'fields': ['header', 'sub_header',
'link_text']}),
]
list_display = ('title', 'pub_date')
list_filter = ['pub_date']
admin.site.register(Home, HomeAdmin)
我的[main_app] /urls.py:
from django.conf.urls import url, include
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('home.urls'))
]
但是当我去localhost:8000/admin
时,唯一存在的就是群组和用户,好像我根本没有注册过任何模型。
我已经运行了makemigrations并进行了迁移,我尝试将admin.py放在app目录而不是项目目录中。它当前位于[project_name] / [project_name]目录(包含settings.py,urls.py和wsgi.py文件的目录)。
有什么建议吗?
答案 0 :(得分:1)
当我使用Django管理员时,总是以这种形式导入:
from django.contrib import admin
在课堂上继承:
class HomeAdmin(admin.ModelAdmin):
所以你的admin.py文件就像这样:
from django.contrib import admin
from home.models import Home
# begin Admin Class Definitions
class HomeAdmin(admin.ModelAdmin):
fieldsets = [
('Title', {'fields': ['title']}),
('Publication Date', {'fields': ['pub_date']}),
('Home Page Text', {'fields': ['header', 'sub_header',
'link_text']}),
]
list_display = ('title', 'pub_date')
list_filter = ['pub_date']
admin.site.register(Home, HomeAdmin)
答案 1 :(得分:1)
我认为您必须将模型注册到管理员。如果它是一个简单的模型,我通常会这样做。
from django.contrib import admin
from .models import *
# Register your models here.
@admin.register(Model)
class ModelAdmin(admin.ModelAdmin): pass
答案 2 :(得分:1)
我放弃了尝试诊断我的问题,然后重新启动了项目并开始了。它现在工作正常。老实说,我不确定问题是什么。如果有人好奇,这是我的新文件:
来自settings.py:
INSTALLED_APPS = [
'home',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
来自urls.py的:
from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
来自admin.py的:
from django.contrib import admin
# Register your models here.
from .models import HomePageText
admin.site.register(HomePageText)
老实说,我不明白为什么以前没有工作。如果有更多洞察力的人能发现一些差异,我不能告诉我。