2017-05-11 38 views
1

我是新來的Django,那麼請與我裸露,如果我寫的東西愚蠢:Django的註冊用戶在管理網站與生成的密碼

問題:

我想用Django管理站點用戶模型註冊新用戶。默認選項可讓您註冊帶有密碼和密碼確認的新用戶名,這是必填字段。

我的想法是做出一些改變。我想保留用戶名字段並添加電子郵件字段,但刪除密碼和密碼確認。主要想法是,我會註冊一個用戶,他會收到一封帶有生成密碼的電子郵件。然後,他可以使用生成的密碼登錄並更改密碼。

我面臨着巨大的問題,模板,錯誤,最重要的是壓倒一切的類。

我花了很多很多時間檢查Django文檔,GOOLGE,我可以這樣做迄今爲止最好的是:

admin.py

from django.contrib import admin 
from django.contrib.auth import admin as upstream 
from django.contrib.auth.admin import UserAdmin 
from django.contrib.auth.forms import UserCreationForm, UserChangeForm 
from django.contrib.auth.models import Group, User 
from django.utils.translation import ugettext, ugettext_lazy as _ 


class UserAdmin(upstream.UserAdmin): 
    fieldsets = (
     (None, {'fields': ('username', 'password','email')}), 
     (_('Personal info'), {'fields': ('first_name', 'last_name')}), 
     (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 
             'groups', 'user_permissions')}), 
     (_('Important dates'), {'fields': ('last_login', 'date_joined')}), 
    ) 
    add_fieldsets = (
     (None, { 
      'classes': ('wide',), 
      'fields': ('username','email')} 
     ), 
    ) 

    form = UserChangeForm 
    add_form = UserCreationForm 

try: 
    admin.site.unregister(User) 
except NotRegistered: 
    pass 

admin.site.register(User, UserAdmin) 

這是我計算器上發現了一個碼。在add_fieldsets中,我刪除了password1和password2。如果我去管理頁面,一切看起來都很棒,但我無法註冊用戶。

我認爲這是因爲UserCreationForm,堅守創建一個密碼,但也許我可能是錯的。任何人都可以請讓我知道如何覆蓋UsercreationForm,所以密碼不再是強制性的,並且在網站上不會看到來自UserCreationForm的錯誤。

我真的真的真的appreicate你的幫助。

+0

好耶,作爲初學者,你沒有得到成才錯誤的。你不應該使用這個管理應用程序。 https://docs.djangoproject.com/en/1.11/topics/auth/ – e4c5

+0

我創建了我自己的模型,在用戶級聯刪除。您輸入了用戶名和電子郵件,並將這些數據保存到USER。 Howerver,問題是,如果我對my_own模型進行了更改,這不會影響USER模型。 –

+0

再次,我不明白爲什麼你需要添加一個刪除級聯用戶模型。通常這是大多數其他模型的參考(即與您所編碼的相反) – e4c5

回答