django admin.py为一个应用程序

时间:2013-06-13 20:44:58

标签: django django-admin

我正在按照此处包含的教程进行操作:

http://www.djangobook.com/en/2.0/chapter06.html

说明是使用以下代码在app文件夹中创建名为admin.py的文件:

from django.contrib import admin
from mysite.books.models import Publisher, Author, Book

admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)

但是,在我执行此操作后,我在第二行显示错误:

没有名为books.models的模块

我在这里发现了一个类似的问题,但不明白答案:

Django admin page error

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

确保books目录中有__init__.py,因此Python将其识别为模块。

答案 1 :(得分:1)

您是否真的创建了Book模型?以下是the tutorial you're following的模型定义:

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()

    def __unicode__(self):
        return self.title

答案 2 :(得分:0)

我相信我在这里找到了答案:

ImportError: No module named books.models

无论出于何种原因,因为在设置文件中我只是在已安装的应用下有“图书”,我的admin.py应为:

from books.models import Publisher,Author,Book

而不是

来自djangobook1.books.models import Publisher,作者,书籍

现在我不确定这里的规则是什么,但这解决了我的问题......