discuz列表页调用帖子_Django Admin调用自定义方法

5ca3f8ecdc057d77fa16964ac3d56afd.png

Django Admin是Django开箱即用的CRUD界面。只要简单的几句代码就可以生成标准的带分页,添加,删除,列表功能页。

3e14fee702dd3aa5d90736d304376070.png

但真正做过项目的同学肯定知道,在真实的项目, 肯定是有很多功能按钮或者菜单去调用具体的业务逻辑的。这样的脚手架功在被Ruby On Rails普及后,太多框架都加上了类似功能,很多时候还是比较鸡肋的。比如页面风格不一致,自定义方法难实现等。

作为脚手架的鼻祖,Django Admin的实现还是比较优雅的。稍加改动就能实现自定义方法。 首先我们创建个简单的Django 项目

7b236bd50c0a6ac01a9f4439e26b3c8a.png

然后在article目录里的models.py里定义Article类, 加上标题, 内容,发布时间,状态字段

84dd365fd76edb438efedc101fc0f0e2.png

然后在admin.py里创建ArticleAdmin类, 这个是Django Admin 用来生成页面的,所以我们需要给出列表字段 (list_display) 和详细页面的字段(fields)

5e0d1e0b73ac89c67601d9d25b4b2d31.png

创建migration, Django 就会根据Article类生成数据库

e0e91c428b7b7b2d178ff497e0bcb93e.png

然后创建超级用户,这个是用来登录Admin页面的

7f4a4498bdf6bb4bd66f7919c4e577ce.png

启动程序

26aa043bce0a8dc25ab19fea2105e205.png

打开浏览器,访问127.0.0.1:8000/admin,

1f11879496e60eabb8f4c130332060e2.png

用刚才创建的superuser登录后就可以看到Article表格了

231c518ea3770afb9f3249e2cb97c6c9.png

然后我们修改ArticleAdmin类,加上自定义方法publish, queryset就是列表中被选中的articles, 我们可以修改它们的status字段为'published', 然后在action数组里加上publish方法。

969c53148cfe5da7156df2b2711ec66f.png

刷新页面,就可以看到publish方法在下拉列表里了

813a36714f6914058f119a2c58478c67.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值