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

3
我不知道自己做错了什么,但我无法将模型添加到我的管理页面中。
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新增了一个测试字段,但我可以将其添加到管理页面中;/

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 文件。


当您运行syncdb时,它是否正常工作?除了缺少的模型之外,管理站点是否显示正常? - Ctrlspc
你展示的是哪个urls.py文件?patterns('RM.cal.views' ...似乎不适用于管理网址。 - Rohan
我正在使用South迁移,但无法创建新的数据库。是的,在管理站点中我可以看到其他模型,但这个模型(不知道为什么)我看不到... - Silwest
但是你的迁移工作正常,模型肯定已经在数据库中创建了吗? - Ctrlspc
2个回答

1

您需要在类中定义一个app_label,因为Django只会查找models.py文件的1级目录,所以:

class YourModel(models.Model):
    # whatever

    class Meta:
        app_label = 'cal'

您还可以在上述模块的init中导入第二级模型


我在我的模型字段中添加了这个,但它不起作用;/我没有在其他ModelFields中使用app_label,它们都在管理站点中;/ - Silwest

0
尝试导入单个模块而不是 '*' :
from your_app.models import model1,model2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接