首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次使用django-registration创建新用户时,我应该将要执行的代码放在哪里?

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

Stack Overflow用户
提问于 2012-12-19 03:14:07
回答 2查看 75关注 0票数 0

我使用的是django-registration。我已经创建了一个名为"Statistics“的类,该类与类User的每个实例具有一对一的关系。

每次通过/accounts/register页面创建新用户时,我都希望能够创建"Statistics“类的新实例,并将其与刚刚创建的用户关联起来。

我的问题是,我应该在哪里编写代码来做到这一点?我应该把每次创建新用户时要执行的代码放在哪里?大致是这样的:

代码语言:javascript
复制
s = Statisics ( comments = 0, thanked = 0, user = UserThatWasJustCreated)

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-19 04:36:38

正如Josh所指出的,你应该将你的代码附加到一个信号上,除非我会考虑将它附加到Django's post_save signal,如果你需要运行你的代码,即使在django注册之外创建了一个User

在这种情况下,它应该是这样的:

代码语言:javascript
复制
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模型定义之后。

票数 3
EN

Stack Overflow用户

发布于 2012-12-19 03:21:44

查看Django-Registration提供的自定义信号:http://docs.b-list.org/django-registration/0.8/signals.html。我想其中一个可以帮你完成这项工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13939866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档