我有一个带有OneToOneField的模型到django.contrib.auth.models.User。
e.g。
class Client(models.Model):
fancy_field = models.CharField(max_length=20)
user = models.OneToOneField(django.contrib.auth.models.User, primary_key=True)
使用Django管理界面创建新用户时,有没有办法创建相应的客户端。我知道我可以选择将客户端添加到管理界面并自定义它以创建用户,但由于代码已经到位,反之亦然,我想知道是否有可能在用户创建中触发一些代码管理界面。
答案 0 :(得分:0)
仅供参考,您应该了解新的自定义用户模块是否适合您的使用案例: https://docs.djangoproject.com/en/1.6/topics/auth/customizing/#auth-custom-user
但答案是使用信号,它实际上是在文档中,直到1.5引入了新的自定义用户功能。
https://docs.djangoproject.com/en/1.4/topics/auth//#storing-additional-information-about-users
# in models.py
from django.contrib.auth.models import User
from django.db.models.signals import post_save
# definition of UserProfile from above
# ...
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)