2013-06-20 43 views
0

我已經自定義Django 1.5(從djangoproject文檔)身份驗證登錄與電子郵件,而不是用戶名和它的工作完美,但我使用Django註冊1.0註冊用戶。如何從Django註冊中刪除用戶名1.0

如何從django註冊中刪除用戶名字段,以便用戶在註冊時只需輸入電子郵件&密碼。

謝謝大家提前。 Yaniv M

回答

0

您可以創建基於默認RegistrationForm的自定義表單類並在RegistrationView視圖中使用該類。

+0

使用自定義窗體類會我就可以去除用戶名字段的要求?或者只是將自定義字段添加到註冊表單中? – yaniv14

+0

在自定義類中,您可以完全刪除用戶名字段或使其可選。 – maulik13

0

原來,它很複雜。您需要:

  • apply this patch因爲DR-1.0,models.py假設你的用戶模型有一個「用戶名」欄
  • 通過複製/粘貼/編輯註冊/後端/默認創建自己的「後臺」 /views.py
  • 複製/粘貼/從註冊/ forms.py
  • 大部分的時間,你可以使用註冊編輯意見登記表,以及不加修飾
2

這應該讓你開始。 創建您自己的FormForm,它是RegistrationForm的子類。

在forms.py

from registration.forms import RegistrationForm 

class MyRegistrationForm(RegistrationForm): 

    # Override RegistrationForm 
    def __init__(self, *args, **kwargs): 
     super(RegistrationForm, self).__init__(*args, **kwargs) 
     self.fields.pop('username') 

在views.py

from registration.views import RegistrationView 

from yourapp.forms import MyRegistrationForm 


class MyRegistrationView(RegistrationView): 
    form_class = MyRegistrationForm 

在urls.py

url(r'^accounts/register/$', MyRegistrationView.as_view(), 
    name='registration'),