你可以在用户上使用post_save实现它:
from django.db.models.signals import post_savefrom models import UserProfilefrom django.contrib.auth.models import Userdef create_profile(sender, **kwargs): user = kwargs["instance"] if kwargs["created"]: profile = users.models.UserProfile() profile.setUser(sender) profile.save()post_save.connect(create_profile, sender=User)
编辑:
另一个可能的解决方案,它已经过测试并且可以正常工作(我正在我的网站上使用它):
from django.db import modelsfrom django.contrib.auth.models import Userfrom django.db.models.signals import post_savedef create_profile(sender, **kwargs): user = kwargs["instance"] if kwargs["created"]: up = UserProfile(user=user, stuff=1, thing=2) up.save()post_save.connect(create_profile, sender=User)



