2010-07-06 62 views
5

我正在使用Django 1.2,我想要两种用户类型(一种适用于公司,另一种适用于顾问)。我将在我的模型中使用一个对象(类似于is_company或is_consultant的布尔值)或Django的组来区分它们 - 取决于哪个更容易解决此问题。我想这不会是一个问题,如果我不是一个总noob;)如何在注册时创建多种用户类型?

我使用django注册我的身份验证后端,并且我将有一个单独的窗体在我的网页上为每个用户类型(公司vs顾问)。我不认为最好是创建两个不同的视图,这两个视图几乎完全相同,所以我想知道识别/注册注册为两种类型的用户的最好方法是什么。

感谢您的帮助。

回答

2

您是否希望用户在注册时选择他们是咨询顾问还是公司?如果是这样,你可以通过继承RegistrationForm,然后将新表单传递给django注册的参数来创建自己的表单(请阅读文档中有关如何做到这一点的内容。)

要继承表单并添加其他字段你会做一些像这样:

from registration.forms import RegistrationForm 

USER_TYPES = (
    ('consultant', 'Consultant'), 
    ('company', 'Company'), 
) 

class MyRegistrationForm(RegistrationForm): 
    user_type = forms.ChoiceField(choices=USER_TYPES) 

从此,你应该抓住的信号,并做你需要的表单数据django-registration has great documentation

希望这是你所lookign的。

+0

Bartek,谢谢你的帮助。我希望有两个注册“路线”;两个按钮,像'顾问,从这里开始'和'公司,从这里开始',但一个视图。我让每个人都有独立的看法。这对我来说似乎没有django-y。我希望有一个视图指出哪个按钮被按下,并根据它来选择user_type或group。我尝试使用按钮值或名称,并在request.POST信息中查找,但无法找到它。 – Tim 2010-07-06 22:21:46

1

而不是查看POST,您可以传递查询字符串中的信息。 所以一个“按钮”(这实际上只是一个链接)链接到/form?type=consultant,而其他链接到/form?type=company,然后你可以从GET信息中获取它