2010-07-06 95 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信息中獲取它