每次使用Djangoregistration创建新用户时,我应该将要执行的代码放在哪里?

2024-09-29 07:34:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django注册。我创建了一个名为“Statistics”的类,它与类User的每个实例都有一对一的关系。你知道吗

每次通过/accounts/register页面创建新用户时,我都希望能够创建一个类“Statistics”的新实例,并将其与刚刚创建的用户相关联。你知道吗

我的问题是,我应该在哪里写代码呢?每次创建新用户时,我应该将要执行的代码放在哪里?大致如下:

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

谢谢。你知道吗


Tags: django实例代码用户register关系页面comments
2条回答

正如Josh所指出的,您应该将代码附加到一个信号,除非我考虑将它附加到Django's ^{} signal,如果您需要运行代码,即使在django注册之外创建了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模型定义之后。你知道吗

查看Django注册提供的定制信号:http://docs.b-list.org/django-registration/0.8/signals.html。我想其中一个能帮到你。你知道吗

相关问题 更多 >