参见了:http://www.iteye.com/topic/341893
想把内置的Group当作部门来用,增加两个部门电话和email字段,如下
class ProfileGroupBase(type):
def __new__(cls, name, bases, attrs):
module = attrs.pop('__module__')
parents = [b for b in bases if isinstance(b, ProfileGroupBase)]
if parents:
fields = []
for obj_name, obj in attrs.items():
if isinstance(obj, models.Field): fields.append(obj_name)
Group.add_to_class(obj_name, obj)
# GroupAdmin.fieldsets = list(GroupAdmin.fieldsets)fieldssets为空
# GroupAdmin.fieldsets.append((name, {'fields': fields}))
return super(ProfileGroupBase, cls).__new__(cls, name, bases, attrs)
class ProfileGroup(object):
__metaclass__ = ProfileGroupBase
class Dep(ProfileGroup):
mobile = models.CharField(max_length = 15)
email = models.CharField(max_length = 15)
syncdb后auth_group表就有对应的字段了。不影响以前的使用和逻辑。
注:
1,type是python中得metaclass
metaclass 1),在设计时不知道一个class究竟要作什么,需要动态添加
2),运行时要根据情况而生成新的class
2,使用__new__而不是__init__,new才是分配对象内存
分享到:
- 2009-06-01 10:22
- 浏览 1623
- 评论(2)
- 论坛回复 / 浏览 (2 / 4337)
- 查看更多
相关推荐
【标题】"我写的Django OpenGroup系统"指的是一个基于Python的Django框架构建的开源社区平台。Django是Python Web开发的一个强大框架,它强调可重用性和“开箱即用”的功能,使得开发者能够快速高效地创建复杂的Web...
理解User模型、Group模型以及如何使用装饰器或检查器进行权限控制。 8. **中间件**:中间件是Django中一种全局的响应和请求处理机制。了解何时及如何编写自定义中间件以扩展框架功能。 9. **缓存系统**:Django的...
### Django REST Framework 知识点解析 #### 一、简介 Django REST Framework...综上所述,Django REST Framework不仅提供了强大的功能支持,而且通过高度可配置性和扩展性使得开发者能够快速构建高质量的Web API。
综上所述,这个后台管理系统融合了 Python Django 的强大后端功能与 Vue.js 的高效前端渲染,通过 RESTful API 实现前后端分离,实现了用户管理与用户组管理的增删改查功能,具备良好的可扩展性和可维护性。...
首先,我们需要确保已安装了Django和Django Channels,后者是Django处理WebSocket请求的扩展。你可以通过Python的pip工具进行安装: ```bash pip install django pip install channels ``` 接下来,我们来配置...
Channels是Django的一个扩展,允许我们处理非HTTP协议,如WebSocket。在Django 2.0+版本中,Channels已经作为一个独立的库存在,使得Django能够处理异步请求,这在构建实时应用时非常有用。 WebSocket协议是一种在...
Django是Python最流行的Web框架之一,以其高效、可扩展和安全的特性受到开发者的喜爱。为了确保项目的顺利部署,我们将遵循一系列详细步骤,这些步骤将涵盖环境配置、Django安装、数据库设置、Nginx反向代理以及...
【标题】"django_group_project" 是一个基于 Django 框架构建的团队协作项目,它可能包含了一系列用于创建和管理用户组、分配权限以及实现协同工作的功能和组件。Django 是一个高级的 Python Web 开发框架,它鼓励...
5. 权限和组:Django的`Group`模型允许我们将用户分组,并为每个组分配一系列的权限。权限控制了用户可以执行的操作,如查看、更改或删除数据。 6. 自定义注册流程:虽然Django提供默认的注册视图,但在实际项目中...
- **设置角色和权限**:通过`django.contrib.auth.models.Group`和`Permission`对象,可以创建角色并分配权限。 - **API集成**:在视图中使用`@api_view`装饰器,结合`serializers`和`permissions`实现API接口。 ...
本案例中,我们将探讨如何扩展Django的内置权限系统,以实现对数据库实例的细粒度访问控制。 首先,我们来看背景介绍。原本的权限系统是基于功能划分的,例如用户A有审核权限,那么A可以审核所有数据库。但随着系统...
Django Channels是Django框架的一个扩展,它允许我们处理非HTTP协议的通信,如WebSocket,从而实现了实时双向通信。理解WebSocket的底层工作原理和如何在Django Channels中运用,对于开发现代Web应用程序至关重要。 ...
在实际开发中,我们可能还需要创建自定义的视图和模板来处理特定的管理任务,或者扩展Django的后台样式。`itstyle`可能是指用于定制后台界面样式的资源文件,如CSS、JavaScript等。可以将这些文件放入项目的静态...
【Django User模型详解与扩展方法】 Django的User模型是其身份认证系统的核心,它位于`django.contrib.auth.models.User`。User模型包含了处理用户账户所需的基本信息和属性,如下所述: 1. **字段**: - `...
然而,有时默认的用户模型可能无法满足特定项目的需求,这时可以通过自定义用户模型来扩展或修改用户信息。 **2. 自定义User模型** 要自定义User模型,你需要创建一个新的模型并继承自`AbstractBaseUser`或者`...
对于初学者来说,这是一个很好的起点,你可以在此基础上扩展功能,比如实现用户身份验证、多房间聊天、存储历史消息等功能。随着你对Django和WebSocket的深入理解,你将能够构建更复杂、功能更丰富的实时Web应用。
对于权限管理,可以使用内置的Group和UserPermissions系统,或者扩展自定义的权限模型。 8. 库与扩展: 在"Depot"应用开发过程中,可能会用到第三方库,比如用于支付处理的Stripe、PayPal API,或者用于邮件发送的...
【Python-Django博客系统开发详解】 在计算机科学与技术领域,毕业设计是学生们展示技能、理解和...在实际项目中,还可以扩展功能,如增加社交分享、SEO优化、评论举报等功能,进一步提升博客系统的用户体验和实用性。