在django admin中控制用户创建

时间:2014-05-19 16:47:27

标签: django django-admin django-authentication

我有一个带有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管理界面创建新用户时,有没有办法创建相应的客户端。我知道我可以选择将客户端添加到管理界面并自定义它以创建用户,但由于代码已经到位,反之亦然,我想知道是否有可能在用户创建中触发一些代码管理界面。

1 个答案:

答案 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)