django中的多个用户扩展对象

时间:2014-01-11 04:04:47

标签: python django models

我们可以在同一个应用程序中使用多个用户扩展对象,例如我有一个模型教师和我的应用程序中的其他学生,两者都与User by oneToone字段相关但具有一些不同的扩展属性,所以任何人都可以告诉我如何使用User属性配置它并将它们声明为AUTH_PROFILE_MODULE而不是在get_or_create()模型中定义完整函数,如

    def get_or_create_profile(user):
            user.profile, c = UserProfile.objects.get_or_create(user=user)
            return user.profile

我正在使用像

这样的功能
    User.profile = property(lambda u: UserProfile.objects.get_or_create(user = u)[0])

但是这仍然没有用,所以定义函数有任何问题,或者我还要使用更多的东西....

models.py看起来像这样

    class Teachers(models.Model):
        user = models.OneToOneField(User)
        department = models.CharField(max_length = 50)
        .....
        .....

    class Students(models.Model):
        user = models.OneToOneField(User)
        enrollment_no = models.IntegerField()
        ......
        ......

1 个答案:

答案 0 :(得分:0)

Can we use multiple user extended objects in the same app?的答案是

So can anyone please tell me how to configure this using User property?

的答案

也许这可以工作

................. #User Code

 ## this function mus be into your custom User#########3

   @property
   def profile(self):
       return UserProfile.objects.get_or_create(user=self)

尚未测试,但必须正常工作