【问题标题】:Django: adding model to admin siteDjango:将模型添加到管理站点
【发布时间】:2012-10-12 03:38:07
【问题描述】:

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

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 时它工作正常吗?除了缺少的模型之外,管理站点是否显示正常?
  • 您在此处显示的是哪个 urls.py? patterns('RM.cal.views' ... 似乎不适合管理员网址。
  • 我使用南迁移我无法创建新的数据库。是的,在管理站点中我看到了其他模型,但是这个(不知道为什么)我没有看到...
  • 但是您的迁移工作正常,模型肯定是在数据库中创建的?

标签: django django-models django-admin


【解决方案1】:

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

class YourModel(models.Model):
    # whatever

    class Meta:
        app_label = 'cal'

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

【讨论】:

  • 嗯,我在我的模型字段中添加了这个,但它不起作用;/我没有在其他模型字段中使用 app_label,它们在管理站点中;/
【解决方案2】:

尝试导入独立模型而不是“*”:

from your_app.models import model1,model2

【讨论】:

    猜你喜欢
    • 2016-02-18
    • 2016-03-08
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多