在Django 1.5 中 Django Step by Step (七)教程的修正

由于自己所用的dango版本是1.5的。所用在阅读教程《django step by step 》时发现很多程序都是不能运行的,以下记录了第七篇(一个通讯录的例子)的修正方法。

  • 修改前的address/models.py文件:
#coding=utf-8
from django.db import models

# Create your models here.

class Address(models.Model):
    name = models.CharField('姓名', maxlength=6, unique=True)
    gender = models.CharField('性别', choices=(('M', '男'), ('F', '女')),
        maxlength=1, radio_admin=True)
    telphone = models.CharField('电话', maxlength=20)
    mobile = models.CharField('手机', maxlength=11)

由于1.3以后的版本不支持radio_admin,所用此处应该要一点改动,更正后的代码:

#coding=utf-8
from django.db import models
from django.contrib import admin

# Create your models here.
class Address(models.Model):
    name = models.CharField('姓名',max_length=20,unique=True)
    gender = models.CharField('性别',choices=(('M','男'),('F','女')), max_length=1 )
    telphone = models.CharField('电话',max_length=20)
    mobile = models.CharField('手机', max_length=11)

    def __repr__(self):
        return self.name

class AddressAdmin(admin.ModelAdmin):
    model = Address
    radio_fields = {'gender':admin.HORIZONTAL}

    admin.site.register(Address , AddressAdmin)

  • 修改原app中的urls文件 ,去掉admin 的url配置注释, 代码如下:
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
  • 对教程14步,增加address/urls.py做修改,修改前代码如下:
from django.conf.urls.defaults import *
from newtest.address.models import Address

info_dict = {
#    'model': Address,
    'queryset': Address.objects.all(),
}
urlpatterns = patterns('',
    (r'^/?$', 'django.views.generic.list_detail.object_list', info_dict),
)

由于当前版本的view.generic 取消了list_detail ,代码在1.5版本中不可以允许,更正方法如下:

编辑address/views.py文件,添加如下代码

#coding=utf-8
from django.shortcuts import get_object_or_404
from django.views.generic.list import ListView
from address.models import Address

class AddressList(ListView):

    model = Address
     #template_name = 'address/address_list.html'

    def get_queryset(self):
         return Address.objects.all()

在ListView中tempalte_name在不设置的情况下会自动的templates文件夹中寻找这种(对象名_list.html)文件名的文件作为tempalte接着编辑address/urls.py文件,添加如下代码

from django.conf.urls.defaults import *
from address.views import AddressList
from django.views import generic

urlpatterns = patterns('',
    url(r'^/?$', AddressList.as_view()),
)

最后再修改原app中的urls文件 在patterns元组中添加如下的代码:

url(r'^address/', include('address.urls')),

运行结果图



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值