Django 管理页面错误

Posted

技术标签:

【中文标题】Django 管理页面错误【英文标题】:Django admin page error 【发布时间】:2011-07-24 23:40:36 【问题描述】:

我正在创建一个 Django 应用程序。这样做我启用了 Django 管理站点,我可以看到它工作正常。然后我创建了一些模型并通过我的应用程序中的表单将数据插入其中。但我无法通过 Django 的管理面板查看输入的值。我发现这是因为我的应用程序文件夹中没有包含 admin.py 文件。然后我创建了一个 admin.py 文件,运行 syndb 并尝试了。现在它抛出一个错误

ImportError at /admin/ No module named UniversityDetails.models

我将粘贴我的 admin.py、models.py 和项目文件夹结构。请帮我解决这个问题。

Models.py

from django.db import models

class UniversityDetails(models.Model):
    firstName = models.CharField(max_length=200)
    lastName = models.CharField(max_length=200)
    email = models.EmailField()
    password = models.TextField()
    birthday = models.TextField()
    sex = models.CharField(max_length=10)

admin.py

from universityDetails.models import *
from django.contrib import admin

admin.site.register(UniversityDetails)

项目名称:universityDB 应用程序名称:universityDetails

追溯

    Environment:

Request Method: GET
Request URL: http://10.1.0.90:8080/admin/
Django Version: 1.2.5
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'universityDetails',
 'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.middleware.csrf.CsrfResponseMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:

    File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
      91.                         request.path_info)
    File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in resolve
      215.             for pattern in self.url_patterns:
    File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_url_patterns
      244.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
    File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_urlconf_module
      239.             self._urlconf_module = import_module(self.urlconf_name)
    File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py" in import_module
      35.     __import__(name)
    File "/home/rv/Desktop/universityDB/../universityDB/urls.py" in <module>
      5. admin.autodiscover()
    File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/__init__.py" in autodiscover
      24.             import_module('%s.admin' % app)
    File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py" in import_module
      35.     __import__(name)
    File "/home/rv/Desktop/universityDB/universityDetails/admin.py" in <module>
      1. from UniversityDetails.models import *

    Exception Type: ImportError at /admin/
    Exception Value: No module named UniversityDetails.models

【问题讨论】:

我以为您说您将第 1 行更改为我的版本?将导入行更改为from universityDB.universityDetails.models import *时的回溯是什么? 这是你告诉我修改的回溯。 这条回溯表明universityDetails/admin.py 的第 1 行是from UniversityDetails.models import * - 你在重启服务器吗? 是的...我正在重新启动服务器...! 太奇怪了.. 一条不存在的行出现在回溯中。我只看到过这样的事情,旧的.pyc 文件到处乱放并造成混乱。尝试删除您的 .pyc 文件。否则,这超出了我的范围。祝你好运 rv_k!我要睡觉了。 【参考方案1】:

尝试将模型名称中的 managed = false (删除模型类的 meta 中的 managed = false)

【讨论】:

【参考方案2】:

使用以下内容:

从模型导入 *

并将您的 admin.py 文件放入模型文件夹中

【讨论】:

【参考方案3】:

试试

from universityDB.universityDetails.models import *
from django.contrib import admin

class UniversityDetailsAdmin(admin.ModelAdmin):
    fields = ['firstName ', 'lastName ']
    list_display = ('firstName ', 'lastName ')    
    search_fields = ['firstName ', 'lastName ']

admin.site.register(UniversityDetails,UniversityDetailsAdmin)

【讨论】:

试试from universityDB.universityDetails.models.UniversityDetails【参考方案4】:

典型的 django 设置将项目的父目录放在 Python 路径上,这意味着您的模型通过 MyProject.MyApp.models 解析

如果您可以导入universityDB(您需要这样做,否则您会遇到更多/不同的问题),您应该将admin.py 的第1 行更改为from universityDB.universityDetails.models import *,然后您就应该设置好了。

【讨论】:

那没有解决我的问题..我做了你告诉的改变..仍然抛出同样的错误。我有一个登录和注册页面,它对我现在选择的所有页面都抛出相同的错误.. 什么文件的哪一行触发了这个错误?错误提示没有名为 UniversityDetails.models 的模块——您是否将 universityDetails 错误地输入为 UniversityDetails 异常位置是“异常位置:/home/rv/Desktop/universityDB/universityDetails/admin.py in , line 1” 我的模型类名称是 UniversityDetails 。应用名称是 universityDetails。 我想知道为什么您的错误消息显示UniversityDetails,而您没有在任何地方指定。当您将行更改为我上面写的内容时,会发生完全相同的异常?【参考方案5】:

听起来 UniversityDetails 不在您的 python 路径中,您添加了吗?

【讨论】:

如何将其添加到 python 路径中?

以上是关于Django 管理页面错误的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何使用 handler500 重定向到前端服务器页面并接收管理错误电子邮件

我无法使用有效的用户名和密码登录 Django 管理页面,它返回 % csrf_token % 禁止的 404 错误消息

django admin 自定义模板页面未找到错误

Django:在模板中获取到管理页面的链接

无法使用有效的用户名和密码登录 django 管理页面

如何只允许管理员(或某些用户)在 Django 中编辑页面?