2014-02-25 96 views
0

加入AUTH_USER在Django的1.6我用我自己的模式推廣Django的用戶模型像Django的與擴展的用戶簡

class Employee(models.Model): 
    user  = models.ForeignKey(User, related_name='profile') 
    adress  = models.CharField(max_length=500) 
    department = models.ForeignKey(Department) 

class Department(models.Model): 
    name = models.CharField('Name', max_length=200) 

我現在想登錄的用戶查看它的數據,所以我需要顯示所有僱員,部門和auth_user表中的相關信息。

通常我會用

#employee = Employee.objects.select_related('department').select_related('user').get(user_id=request.user.id) 

打所有我想要的表。但由於某種原因,如果我爲我的查詢選擇Employee.objects,我只是獲取與部門表連接的employee表的信息,而沒有auth_user的信息。 我用User.objects開始查詢......它正好相反。我可以訪問user_auth信息,但不能訪問員工或部門信息。

我也試過我的模型中的OneToOne關係,但結果相同。我很確定,如果有外鍵關係引用應用程序表,則可以使用簡單的方式將應用程序表與django表連接起來。

爲了完整employee.id之間的差異employee.user_id

`id` int(11) NOT NULL AUTO_INCREMENT, 
    CONSTRAINT `department_id` FOREIGN KEY (`department_id`) REFERENCES `polls_department` (`id`), 
    CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) 

回答

0

爲什麼不定義Employee模型的django.contrib.auth.AbstractUserdocs here)一個子類?您可以一次訪問所有User相關字段以及您在Employee課程中定義的額外字段。

+0

謝謝你的回答。我使用這裏的文檔https://docs.djangoproject.com/en/1.6/topics/auth/customizing/#extending-the-existing-user-model來擴展用戶模型。 最後,我結束了使用你的建議。 – BlueSapphire