向Django添加额外的字段到Django认证组 [英] Add extra Fields to Django to Django Auth Groups

查看:193
本文介绍了向Django添加额外的字段到Django认证组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Django的Group Model中添加新字段?
要从django.contrib.auth.models导入组中使用类似

 的类别
g = Group.objects .get(pk = 1)
g.extra_field =something
g.save()

是可以吗?



编辑:



我需要一个持久的额外字段。

解决方案

这不是在文档中,但可以使用(预先对猴子补丁有一个基本的了解),在你的models.py或init add:

  from django.contrib.auth.models import Group 

Group.add_to_class(' foo',bar)

其中bar可以是任何python对象(或方法),例如


  def bar(self):
return self.attr * 2
pre>

或使用字段映射:

  Group.add_to_class 'foo',models.RegexField(r'^ hello $'))


How add a new field in Group Model of the Django? To use something like

from django.contrib.auth.models import Group
g = Group.objects.get(pk=1)
g.extra_field = "something"
g.save()

it's posssible?

EDIT:

I need a persistent extra field.

解决方案

This isn't in the documentation but fine to use (pre to have a basic understanding of monkey patching), in your models.py or init add:

from django.contrib.auth.models import Group

Group.add_to_class('foo', bar)

Where bar can be any python object (or method), e.g.

def bar(self):
    return self.attr * 2

or using a field mapping:

Group.add_to_class('foo', models.RegexField(r'^hello$'))

这篇关于向Django添加额外的字段到Django认证组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆