2013-05-06 27 views
8

Djangoのグループモデルで新しいフィールドを追加するにはどうすればよいですか? 何かを使用するには追加のフィールドをDjangoのAuthグループに追加する

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

それは可能でしょうか?

EDIT:

私は永続的な余分なフィールドを必要としています。

答えて

8

これは、追加のドキュメントではなく、使用するファイン(猿のパッチの基本的な理解を持つように事前に)、あなたのmodels.pyにまたはinitはない:

バーは任意のPythonのオブジェクトにすることができ
from django.contrib.auth.models import Group 

Group.add_to_class('foo', bar) 

(または方法)、​​例えば

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

またはフィールドマッピング使用:

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

ありがとうHedde。しかし、永続的な属性が必要です。私は質問を編集します! –

+0

先にロードすると永続的です。おそらくdbfieldを意味しますか?私はそれが任意のオブジェクトになることができると言ったようにちょうどmodels.CharField(stuff)を割り当てる.. –

+0

素晴らしい!これは! Tnks! –

1

を私は同じ問題を抱えていました。グループに余分なフィールドを追加したかったのです。それは私のために働いた - Monkey patching

関連する問題