新的 django 应用程序中没有 admin.py 文件

Posted

技术标签:

【中文标题】新的 django 应用程序中没有 admin.py 文件【英文标题】:no admin.py file in new django app 【发布时间】:2013-01-30 10:50:14 【问题描述】:

我是 Django 新手,我已经遇到了一个问题。我在 OSX Mountain lion 上使用 Django 1.4.3。

当我使用

启动新应用时
    django-admin.py startapp "name" 

应用程序已创建,所有必要的文件都在其中(__Init__.pymodels.pytests.pyviews.py)。但是,应该自动创建的admin.py 文件不在app 文件夹中。没有它,我将无法编辑我的管理员站点首选项。

关于为什么会发生这种情况的任何想法?

【问题讨论】:

我不记得 admin.py 是自动创建的。无论如何,新应用程序没有任何东西可以放入其中,因为您需要有模型供管理员执行任何操作。 @Michael Mior 这很奇怪。我正在浏览 Django 网站上的教程,它说一旦我创建了一个新应用程序,admin.py 文件就应该在那里,但我会环顾四周 一般来说:“如果文件不存在,则创建它”。 不知道为什么人们对这个话题如此讨厌。如果一个框架声称要创建某些文件然后失败了,那么很难知道如果只是自己创建一个文件,您是否会省略适当的导入或框架可能为您做的任何其他事情。 【参考方案1】:

您很可能正在阅读开发教程,但使用的是稳定版本(当前为 1.4.3)。 admin.py 是由 startapp 从 this commit 创建的,它还更新了教程文档,但直到 1.6 才会使其成为稳定版本。

【讨论】:

【参考方案2】:

Admin.py 未生成。回应 OP 对您对上述帖子的评论:

来自教程的第 1 部分:https://docs.djangoproject.com/en/1.4/intro/tutorial01/

让我们看看 startproject 创建了什么:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

在第 2 部分,在“使投票应用可在管理员中修改”部分下,它说:

但是我们的投票应用在哪里?它不显示在管理索引页面上。

只需要做一件事:我们需要告诉管理员 Poll 对象有一个管理界面。为此,请在您的 polls 目录中创建一个名为 admin.py 的文件,并将其编辑为如下所示:

from polls.models import Poll
from django.contrib import admin

admin.site.register(Poll)

【讨论】:

对,但是当它要求开始一个新的应用程序“投票”时,没有 Admin.py 文件。该教程说了很多关于将什么放入所述 Admin.py 文件的内容,但似乎没有说明在何处创建它或在 Django 中的何处启动它。 在 docs.djangoproject.com/en/1.4/intro/tutorial02/… 上,有一个标题为“使投票应用程序在管理员中可修改”在下面的文本描述中它说:“只需要做一件事:我们需要告诉admin 认为 Poll 对象有一个管理界面。为此,请在您的 polls 目录中创建一个名为 admin.py 的文件,然后将其编辑为如下所示......【参考方案3】:

您必须手动创建文件,因为默认情况下禁用 django 管理员。

关于在 admin.py 中添加什么的说明是 here。

【讨论】:

docs.djangoproject.com/en/1.4/ref/contrib/admin/… 了解更多具体说明和最新文档

以上是关于新的 django 应用程序中没有 admin.py 文件的主要内容,如果未能解决你的问题,请参考以下文章

Django 查询集排除值

Django 脚本组织的最佳实践

在 Django 中禁用会话创建

第一天django快速开发——环境部署表单数据库操作模板文件学习

第一天django快速开发——环境部署表单数据库操作模板文件学习

在发送新的 GET 请求之前删除请求记录 Django