Django:将模型添加到管理站点

时间:2012-10-22 10:32:00

标签: django django-models django-admin

我不知道我做错了什么,但我无法将模型添加到我的管理员。

settings.py

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.admindocs',
'RM.cal',
'release',
'south',

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',
'django.middleware.gzip.GZipMiddleware',
'django_notify.middleware.NotificationsMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',

TEMPLATE_CONTEXT_PROCESSORS = (
        global_settings.TEMPLATE_CONTEXT_PROCESSORS +
        ('django.core.context_processors.request','django.contrib.messages.context_processors.messages',)

 )

admin.py

from cal.models import *
from django.contrib import admin
admin.site.register(Cos)

urls.py

 from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Example:
# (r'^RM/', include('RM.foo.urls')),
(r'^cal/', include('RM.cal.urls')),

# Uncomment the admin/doc line below to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),

# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': 'C:/Users/sg0217297/Desktop/test/tkt_crmt/RM/media'}),
models.py仅用于测试的新字段,但我可以将其添加到admin; /

from django.db import models
from django.contrib import admin
class Cos(models.Model):
    name = models.CharField(max_length=400, blank= False , null = True)

    def __unicode__(self):
    return self.name

知道为什么吗?

感谢您的帮助

E: 更新了urls.py

2 个答案:

答案 0 :(得分:1)

你需要在你的类中定义一个app_label,django对于models.py只有1级深度,所以:

class YourModel(models.Model):
    # whatever

    class Meta:
        app_label = 'cal'

您还可以在

以上模块的 init 中导入第二级模型

答案 1 :(得分:0)

尝试导入单个模型而不是'*':

from your_app.models import model1,model2