Django book 第 6 章:无法导入 Book 模型

Django book chapter 6: unable to import Book model

我正在通过在线书籍学习 Django,目前卡在 Chapter 6。在 将您的模型添加到管理站点 部分中,需要 reader 才能在 books[=35] 中创建名为 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)

这应该使这些模型可以在管理站点上进行编辑,但我得到的是以下内容:

ImportError at /admin/
No module named books.models

在 Python 命令行中我得到一个类似的错误:

>>> from mysite.books.models import Book
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named mysite.books.models

这些是 models.py 文件的内容:

from django.db import models

class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    def __unicode__(self):
        return self.name

    class Meta:
        ordering = ['name']


class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()

    def __unicode__(self):
        return u'%s %s' % (self.first_name, self.last_name)


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

到目前为止,我已经严格按照书中的说明进行操作,因此我应该有一份所用代码的精确副本。文件结构由 Django 自动创建:

books
  __init__.py
  admin.py
  models.py
  tests.py
  views.py
mysite
  templates
  __init__.py
  settings.py
  urls.py
  views.py
  wsgi.py
manage.py

admin 模块中导入 models 文件的正确方法是什么?

这是一本很旧的书,有些内容在当前版本的 Django 中已弃用。

试试这个导入:

from books.models import Publisher, Author, Book

而不是:

from mysite.books.models import Publisher, Author, Book