Django1.5+Python3.3下groundwork的使用
因为要学习“心内求法”关于Django的教程,其中提到了groundwork的应用,因为django1.5(应该说1.4及以上)目录结构生成较之前发生了变化,再加上python3.x的语法也较python2.7有所差异,所以为了使用groundwork,还需要做一些适应性的修改。记录如下,作为备忘:
(1) 下载groundwork:
在https://github.com/freetstar/django-groundwork下载;
(2) 安装groundwork,修改groundwork.py
解压后,直接把django-groundwork目录拷贝到项目根目录下;
需要把django-groundwork/management/commands/groundwork.py修改一下:
把之前的from placeholders import *,改为from .placeholders import *。增加了一个"."。
把所有print语句改为print()函数方式。
(3) 完成Model定义后,调用groundwork生成view,form,template。
输入>manage.py groundwork <app_name> <model> # 假设app_name为du,model为book
(4) 把项目根目录下/<project_name>/templates/下的<app_name>目录和base.html,都拷贝到项目同名目录下的templates目录下,即/<project_name>/<project_name>/templates/下。并删去之前的templates目录。
(5) 在对应的templates下的<app_name>目录下,找到list_<model>.html。搜索“{% url”,Django1.5中,正确的格式为{% url 'path.to.some_view' v1 v2 %}。所以要把所有类似与:{% url du.views.view_book item.id %},都改为{% url "du.views.view_book" item.id %},即view部分都要加上引号。
(6) 此时urls.py已经加入了对应urlpatterns,可以去看看或者梳理下。
(7) 在app目录下,打开views.py,把之前的import改为如下:
from django.conf.urls import *
from .views import * # 同目录下需要加"."
(8) 此时运行服务器,就可以在http://127.0.0.1:8000/du/book/list/下看到简单的页面了。
(9) 在此之前,还需要把django-groundwork/management/commands/groundwork.py修改一下: