我使用的是django-registration。我已经创建了一个名为"Statistics“的类,该类与类User的每个实例具有一对一的关系。
每次通过/accounts/register页面创建新用户时,我都希望能够创建"Statistics“类的新实例,并将其与刚刚创建的用户关联起来。
我的问题是,我应该在哪里编写代码来做到这一点?我应该把每次创建新用户时要执行的代码放在哪里?大致是这样的:
s = Statisics ( comments = 0, thanked = 0, user = UserThatWasJustCreated)谢谢。
发布于 2012-12-19 04:36:38
正如Josh所指出的,你应该将你的代码附加到一个信号上,除非我会考虑将它附加到Django's post_save 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模型定义之后。
发布于 2012-12-19 03:21:44
查看Django-Registration提供的自定义信号:http://docs.b-list.org/django-registration/0.8/signals.html。我想其中一个可以帮你完成这项工作。
https://stackoverflow.com/questions/13939866
复制相似问题