• 将你的Models加入到Admin管理中

    将你的Models加入到Admin管理中

    有一个关键步骤我们还没做。 让我们将自己的模块加入管理工具中,这样我们就能够通过这个漂亮的界面添加、修改和删除数据库中的对象了。 我们将继续第五章中的book 例子。在其中,我们定义了三个模块: PublisherAuthorBook

    books 目录下(mysite/books ),创建一个文件:admin.py ,然后输入以下代码:

    1. from django.contrib import admin
    2. from mysite.books.models import Publisher, Author, Book
    3. admin.site.register(Publisher)
    4. admin.site.register(Author)
    5. admin.site.register(Book)

    这些代码通知管理工具为这些模块逐一提供界面。

    完成后,打开页面 http://127.0.0.1:8000/admin/ ,你会看到一个Books区域,其中包含Authors、Books和Publishers。 (你可能需要先停止,然后再启动服务(runserver ),才能使其生效。)

    现在你拥有一个功能完整的管理界面来管理这三个模块了。 很简单吧!

    花点时间添加和修改记录,以填充数据库。 如果你跟着第五章的例子一起创建Publisher对象的话(并且没有删除),你会在列表中看到那些记录。

    这里需要提到的一个特性是,管理工具处理外键和多对多关系(这两种关系可以在Book 模块中找到)的方法。 作为提醒,这里有个Book 模块的例子:

    1. class Book(models.Model):
    2. title = models.CharField(max_length=100)
    3. authors = models.ManyToManyField(Author)
    4. publisher = models.ForeignKey(Publisher)
    5. publication_date = models.DateField()
    6. def __unicode__(self):
    7. return self.title

    在Add book页面中(http://127.0.0.1:8000/admin/books/book/add/ ),外键 publisher用一个选择框显示,多对多 字段author用一个多选框显示。 点击两个字段后面的绿色加号,可以让你添加相关的记录。 举个例子,如果你点击Publisher后面的加号,你将会得到一个弹出窗口来添加一个publisher。 当你在那个窗口中成功创建了一个publisher后,Add book表单会自动把它更新到字段上去 花巧.