最近一直在学习《The Django book》,但是按照书中描述,始终无法激活管理界面。
尝试了很多办法,也参考了相关网友的文章,才初步解决(打开了管理界面)
现在将其中的大概流程分享一下。
首先倒叙一下,我最终是通过Pycharm 建立project的时候,选择enable admin 选项,所以中间省去了很多步骤。
但是如果是出于学习的目的,我们还是要知道各个步骤中的含义。
1.建立project.参照书中,project:pub ; app books.
修改models.py,创建相应的model;
-
from django.db import models
-
-
# Create your models here.
-
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 __str__(self):
-
return self.name
-
-
class Author(models.Model):
-
salutation = models.CharField(max_length=10)
-
first_name = models.CharField(max_length=30)
-
last_name = models.CharField(max_length=40)
-
email = models.EmailField()
-
def __str__(self):
-
return '%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 __str__(self):
-
return self.title
-
class admin:
-
pass
2.在mysql中创建database books,创建用户books.
-
1.C:\Documents and Settings\Administrator>mysql -uroot
-
2.
-
mysql> create database books;
-
Query OK, 1 row affected (0.00 sec)
-
-
3.
-
grant all on books.* to identified by "test"; #赋权限
3.修改settings.py
-
DATABASES = {
-
'default': {
-
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
-
'NAME': 'books', # Or path to database file if using sqlite3.
-
'USER': 'books', # Not used with sqlite3.
-
'PASSWORD': 'test', # Not used with sqlite3.
-
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
-
'PORT': '', # Set to empty string for default. Not used with sqlite3.
-
}
-
}
4.运行 python manage.py syncdb
在数据库中创建表,索引等。
如果是第一次运行,此时会要求你填写admin登录的用户明和密码等。
5.其他配置文件的修改
settings.py
Installed_apps 中去掉Django.contrib.admin 的注释。
urls.py
增加
from django.contrib import admin
admin.autodiscover()
去掉 url(r'^admin/', include(admin.site.urls)), 的注释
至此如果正常来讲你已经可以正常打开站点管理界面,但是你并不能管理我们models.py中所建的三个表。
这里还需要增加一个文件,在app books目录下,新建admin.py文件,内容如下:
-
__author__ = 'Administrator'
-
from django.contrib import admin
-
from models import Publisher
-
from models import Author
-
from models import Book
-
#class ModuleAdmin(admin.ModelAdmin):
-
# list_display = ['name','manager','isdpool']
-
# filter_horizontal = ['host']
-
#admin.site.register(Module,ModuleAdmin)
-
admin.site.register(Publisher)
-
admin.site.register(Author)
-
admin.site.register(Book)
这段代码网友提供的脚本, 因为有些文档中并没有注释掉的这部分,所以这里没有采用。
增加这段代码以后,站点管理已经可以正常使用,并维护我们增加的数据表了。
阅读(3986) | 评论(0) | 转发(1) |