Django admin注册model究竟要怎么写才优雅
比如在Django admin 注册models时,会用到。
对于APP里自带的models,可以使用这种方式注册。
from django.contrib import admin # Register your models here. from django.apps import apps
from django.contrib.admin.sites import AlreadyRegistered app_models = apps.get_app_config("crm").get_models() # 获取app:crm下所有的model,得到一个生成器
# 遍历注册model
for model in app_models:
try:
admin.site.register(model)
except AlreadyRegistered:
pass
但是如果想要扩展models在Django admin页面的显示效果时,就没法用上面的方法了,但是可以使用装饰器来简化书写的代码量。
from django.contrib import admin # Register your models here. from bbs import models @admin.register(models.Article)
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'category', 'author', 'pub_date', 'last_modify', 'status', 'priority') @admin.register(models.Comment)
class CommentAdmin(admin.ModelAdmin):
list_display = ('article', 'parent_comment', 'comment_type', 'comment', 'user', 'date') @admin.register(models.Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ('name', 'set_as_top_menu', 'position_index') admin.site.register(models.UserProfile)
补充一个获取模块中类名的方法。
import inspect # 找出模块里所有的类名
def get_classes(arg):
classes = []
clsmembers = inspect.getmembers(arg, inspect.isclass)
for (name, _) in clsmembers:
classes.append(name)
return classes
Django admin注册model究竟要怎么写才优雅的更多相关文章
- Django admin注册model究竟要怎么写才优雅 批量注册model
比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...
- Django admin究竟要怎么写才优雅
比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...
- Django admin 常用方法 model 增加只读权限
1.Django admin model 设置查看权限 Django model 默认只有增加.删除.修改权限.没有查看权限 #model class Ad_Campaing(models.Model ...
- Django admin 注册多个app
class game(models.Model): content = models.TextField() def __str__(self): return 'To game %s' % self ...
- django的admin后台注册model并显示
在admin后台注册model并显示其他字段: 修改app下的admin.py,注册model: from .models import vmadmin.site.register(vm) #注册名为 ...
- Django admin美化插件suit应用[原创]
前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
- Django admin组件源码流程
admin 组件 Django 自带的用户后台组件 用于用户便携的操作 admin 组件核心 启动 注册 设计url 启动核心代码 每个app 通过 apps.py 扫描 admin.py 文件 并执 ...
- Django的认证系统和Django admin的简单使用
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
随机推荐
- 用python实现红包机制
方法一,逻辑是后一个红包的范围是[0.01,剩下的钱*2/剩下的红包数,如果最后钱不足分配给每个人,就把后几个每人分配0.01元. 主要思想就是,每个人至少能领取到0.01元. import rand ...
- 第一册:lesson 11.
原文:Is this your shirt? A:Whose shirt is that? Is this your shirt B? B:NO,sir. It's not my shirt.This ...
- C#开源框架(转载)
Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Li ...
- Redis的数据结构
Redis的数据结构 redis是一种高级的key-value的存储系统,其中value支持五种数据类型. 字符串(String) 哈希(hash) 字符串列表(list) 字符串集合(set) 有序 ...
- AnnotationConfigBeanDefinitionParser are only available on JDK 1.5 and higher
報錯: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML ...
- mac svn的使用
一.概述 在windows下,我们常常用TortoiseSVN管理svn代码.在mac下,自带svn客户端和服务器端功能. 二.服务端:创建代码仓库,用来存储客户端所上传的代码 (1)创建svn代码存 ...
- 2018-10-08 Java源码英翻中进展-内测上线
创建了一个子域名: http://translate.codeinchinese.com/ 欢迎试用, 如有建议/发现问题欢迎在此拍砖: program-in-chinese/code_transla ...
- IntelliJ IDEA 编译Java程序出现 'Error:java: 无效的源发行版: 9' 的解决方案
最新安装的IntelliJ IDEA 2018.1编译器,创建Java Project,并选择之前安装好的Eclipse配置的JDK,如图所示: 在工程中添加 Main.class, main函数中写 ...
- Android为TV端助力 运算符&,|,^
1.&按位“与”的计算是把两个数字分别写成二进制形式,然后按照每一位进行比较,&计算中,只要有一个是0就算成02.|运算转换成2进制进行比较,两个位只要有一个为1,那么结果就是1,否则 ...
- leetcode-217存在重复元素
leetcode-217存在重复元素 题意 给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: ...