Django admin管理端的添加

django 1.02版本,想把应用加入到admin管理界面上,则

1.需要在应用(app里面)建立admin.py文件,内容如下:
from newtest.address.models import Address #Address是数据库里面的一个表类,也就是model里实现的类
from django.contrib import admin

admin.site.register(Address) # 对model的类进行注册

2.修改配置setting.py里的INSTALLED_APPS,加入'django.contrib.admin',
这样django才能识别管理端

3.url.py也要做相应的修改,其中要把admin对应的几个注释去掉,如
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
后面两行的注释去掉,其作用是让admin主动去发现app里面的admin.py文件
urlparterns里面的admin注释同样去掉,如下
# Uncomment the next line to enable the admin:
(r'^admin/(.*)', admin.site.root),

经过上面三个地方的修改,address这个类已经可以在admin管理端显示出来了,不过页面显示的是addressobject,
这看起来很难看,而且添加多个address实例的时候显示的还是那个,故可使用address里的一项作为名字显示在admin管理
端,例如address的实现如下
class Address(models.Model):
name =models.CharField('姓名', max_length=6, unique=True)
gender= models.CharField('性别', choices=(('M','男'), ('F','女')),max_length=1)
telphone = models.CharField('电话',max_length=20)
mobile= models.CharField('手机', max_length=11)

def__str__(self):
returnself.name.encode('utf-8')
加入了__str__这个函数,则再打开admin管理端就能够看到其显示的不是addressobject,而是输入的实例姓名了,因为django的
编码都是utf8的,所以此函数实现部分要转换为utf-8编码,当然现在django已经不用这种方式了,用unicode方式,更简洁,如下:
class Address(models.Model):
name =models.CharField('姓名', max_length=6, unique=True)
gender= models.CharField('性别', choices=(('M','男'), ('F','女')),max_length=1)
telphone = models.CharField('电话',max_length=20)
mobile= models.CharField('手机', max_length=11)

def__unicode__(self):
return self.name
这样django的管理端就不会报错了,否则会报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值