修正 Django Step by Step 的一些例子
2009年07月12日 | 标签: django, python | 作者:vpsee
周末看了 limodou 的 Django Step by Step 入门教程,写得很棒,通俗易懂,谢谢先。Django 发展太快,现在已是 1.0.2 版本,可惜 Django Step by Step 上面的例子还是 0.9x 版本,所以编译运行上面的例子时会出现一些问题,主要是一些兼容问题,列出来以供参考:
第六讲
3、编辑 wiki/models.py
…
pagename = models.CharField(maxlength=20, unique=True)
…
在 Django 1.0.2 中,上面的 maxlength 应改为:
max_length
6、修改 wiki/views.py
…
c = Context({‘pagename’:page.pagename, ‘content’:content})
…
上面代码输出 content 时会把 “< >” 等字符转义输出成 “< >”,这个时候需要关闭自动转义,以便 content 输出 HTML 代码。改成如下:
c = Context({'pagename':page.pagename,'content':content},autoescape=False)
还有一种方法就是在 wiki/page.html 里改成:
{% autoescape off %}{{ content }}
{% endautoescape %}
第七讲
3、修改 address/models.py
…
gender = models.CharField(‘性别’, choices=((‘M’, ‘男’), (‘F’, ‘女’)),
maxlength=1, radio_admin=True)
…
注意上面的 radio_admin=True 已经在 Django 1.0.2 中不适用了,不能写在 field 里,admin 和 model分离了,把 models.py 的全部内容用以下代码替换:
from django.db import models # Create your models here. class Address(models.Model): name = models.CharField('Name', max_length=6, unique=True) gender = models.CharField('Sex', choices=(('M', 'Male'), ('F', 'Female')), max_length=1) telphone = models.CharField('Telphone', max_length=20) mobile = models.CharField('Cellphone', max_length=11) room = models.CharField('Room', max_length=10) from django.contrib import admin class AddressAdmin(admin.ModelAdmin): model=Address radio_fields = {'gender':admin.VERTICAL} admin.site.register(Address, AddressAdmin)
6、修改 urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns(”,
…
# Uncomment this for admin:
(r’^admin/’, include(‘django.contrib.admin.urls’)),
)
新的变化已经在 Django 1.0.2 生成的默认 url.py 里了,只需要把 urls.py 里面的 comment 前面的 # 去掉就可以了。
# Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() # Uncomment the next line to enable the admin: (r'^admin/(.*)', admin.site.root),
7、增加超级用户
manage.py shell
>>> from django.contrib.auth.create_superuser import createsuperuser
>>> createsuperuser()
只需要改成下面一条命令:
./manage.py createsuperuser
以上修正在 Django 1.0.2 + Python 2.5.1 + Mac OS X 10.5.7 上调试通过。
谢谢了
很好,谢谢你的文章。
真的很感谢。
我正在学SBS 感激不尽
不知道你DIP有没有类似的文章
感谢你的文章!!