且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

向Django添加额外的字段到Django认证组

更新时间:2023-12-02 08:50:04

这不是在文档中,但可以使用(预先对猴子补丁有一个基本的了解),在你的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$'))