如果我能搞清楚为什么我的模特没有在管理员中露面,那我就该死了。
models.py看起来是这样的:
from django.db import models
class Publication(models.Model):
title = models.CharField(max_length=255)
def __unicode__(self):
return unicode(self.title)admin.py
from django.contrib import admin
from publications.models import Publication
admin.site.register(Publication)settings.py
...
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'south',
'publications',
)目录结构:
xrdb/
├── manage.py
├── publications
│ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── xrdb
├── __init__.py
├── admin.py
├── settings.py
├── urls.py
└── wsgi.py在管理页面上,我可以看到组、用户和站点。没有出版物!!
有什么帮助吗?谢谢!!
编辑:我已经同步和迁移了,admin.autodiscover()在urls.py中。
编辑II:上面更新的文件。添加了目录结构。
发布于 2014-07-17 21:42:34
更改models.py文件后是否运行syncdb?
转到项目的基本目录(其中有manage.py )并运行
python manage.py syncdb编辑:既然您已经尝试过这样做,那么向类中添加一个str或unicode方法如下:
class Resource(models.Model):
title = models.CharField(max_length=128, blank=True)
def __str__(self): # __str__ for Python 3, __unicode__ for Python 2
return self.name编辑2:有趣的是,我今天在做自己的项目时遇到了同样的问题。如果上面的str代码仍然不适用于您,请再次检查您是否已经在admin.py中注册了模型:
from MyApp.models import MyModel
admin.site.register(MyModel)编辑3:最后,确保使用上述代码的admin.py文件实际上位于所讨论的应用程序的目录中(即与定义MyModel的models.py的目录相同)。
发布于 2019-04-25 08:07:58
请确保您正在打电话:
admin.site.register(<model-name>)
而不是
admin.register(<model-name>)
这就是我的原因。
发布于 2017-01-14 19:49:05
再次检查您的权限--即:如果您认为您的用户是超级用户,只需去查看以确保!如果您的用户不是超级用户,请查看您要登录的用户下的“身份验证和授权”>“用户”,并查看“用户权限:”是否包含所述应用程序的模型。
在追逐了这段时间之后,我意识到我的用户并不是真正的超级用户。正如您将在许多相关文章中看到的那样,如果用户没有正确的权限,应用程序很容易不显示在Admin中,如下所示:

从这里可以看出,用户2对“完成”应用程序的模型没有所需的权限--仅在“计时”应用程序的模型上。
我很确定这是个超级用户(但它不是)。我想,我必须降低我的权限来解决另一个用户已经看到的问题,或者提供更有代表性的使用该系统的体验。
PS这个问题在于,任何使用python manage.py createsuperuser启动的干净数据库都会显示所有已注册的应用程序/模型,而现有的数据库(其中的权限可能更细微)只显示一些注册的应用程序/模型。
https://stackoverflow.com/questions/24813536
复制相似问题