原文链接:http://www.vpsee.com/2009/07/update-examples-in-django-step-by-step/#comments
周末看了 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 上调试通过。