0
我在這一段時間思考。我至少有兩名演員/角色。 「學生」和「導師」。 我做了什麼到現在爲止,是使一個選擇字段是這樣的:Django ..註冊不同類型的用戶和處理他們的相關視圖
class UserProfile(UserenaBaseProfile):
Roles = [('Student' , 'Student') , ('Tutor' , 'Tutor')]
..
role = models.CharField(max_length = 20 , choices = actor_type , blank = True , null = True)
現在我卡住瞭如何在他們的觀點劃分!
有一種方法可以在視圖頂部使用user_passes_test
,但我不知道如何創建組?
如果我有一個學生,我可以做這樣的事情:
class Student(UserProfile):
"""
The Student actor and its necessary fields
"""
courses = models.ManyToManyField('courses.Course' , null = True, blank = True, related_name = _('student') , through = 'Registration')
class Meta:
verbose_name = _("Student")
verbose_name_plural = _("Students")
def save(self , *args , **kwargs):
super(Student , self).save(*args , **kwargs)
user, created = User.objects.get_or_create(username=self.username)
group , created = Group.objects.get_or_create(name = "Student")
if created: group.save()
user.groups.add(group)
user.save()
請你告訴我如何做到這一點的詳細解答:
謝謝..但如果我想定義在基類的角色(如我的例子一樣)和爲我所有的角色製作一個「獨特」的個人資料?我的意思是,而不是有「學生」和「導師」兩個模型,我只設計一個模型(UserProfile)?如果這也是可行的,那麼制定組織的程序是什麼?或者......也許把它們分開成不同的模式是更好的方法? – Soask 2012-07-23 16:44:37
我想每個角色都有不同的職業是更好的方法。 – Soask 2012-07-23 16:53:25
這裏不一定有「更好」的方法。您可以根據需要直接使用「用戶」並按組篩選。這沒什麼錯。如果你想要一個自定義的類,你需要爲'User'使用一個代理模型。然後,您可以根據需要添加任意數量或多種方法;您只需更改或添加任何其他字段。 – 2012-07-23 16:57:03