我正在学习有关Django的在线课程,目前停留在第6章。需要读者在“将模型添加到管理站点”部分中,读者需要admin.py
在books应用中创建一个名为的文件,其内容如下:
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)
这应该使这些模型可在管理站点上进行编辑,但是我得到的是以下内容:
/ admin /处的ImportError
没有命名为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
models
在admin
模块中导入文件的正确方法是什么?
这是一本非常古老的书,在当前版本的Django中已弃用了某些功能。
尝试此导入:
from books.models import Publisher, Author, Book
代替:
from mysite.books.models import Publisher, Author, Book
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句