0

私はジャンゴ登録を使用しています。クラス User の各インスタンスと 1 対 1 の関係を持つ「Statistics」という名前のクラスを作成しました。

/accounts/register ページで新しいユーザーが作成されるたびに、「統計」クラスの新しいインスタンスを作成し、それを作成したばかりのユーザーに関連付けられるようにしたいと考えています。

私の質問は、それを行うにはどこにコードを書かなければならないのですか? 新しいユーザーが作成されるたびに実行されるコードはどこに配置すればよいですか? 次のようなもの:

s = Statisics ( comments = 0, thanked = 0, user = UserThatWasJustCreated)

ありがとう。

4

2 に答える 2

3

Joshが示すように、コードをシグナルに添付する必要がありますが、 django-registrationの外でコードを実行する必要がある場合は、コードをDjangoのpost_saveシグナルに添付することを検討します.User

その場合、次のようになります。

from django.db.models.signals import post_save
from django.contrib.auth.models import User

def create_statistic(sender, *args, **kwargs):
    if kwargs.get('created'):
        s = Statisics( comments=0, thanked=0, user=kwargs['instance'])

post_save.connect(create_statistics, sender=User)

Statisticsモデル定義の後にそのコードを配置できます。

于 2012-12-18T20:36:38.103 に答える
1

Django-Registration が提供するカスタム シグナルを確認してください: http://docs.b-list.org/django-registration/0.8/signals.html。これらのうちの1つがあなたのために仕事をすると思います。

于 2012-12-18T19:21:44.370 に答える