2013-03-08 92 views
11

我使用Django登記的應用程序和Django的1.5。如何創建自定義用戶模型(在Django新),並在註冊過程中也保存這些數據(請注意,我使用Django註冊):django的註冊的應用程序和Django的1.5自定義用戶模型

class CustomProfile(models.Model): 
    user = models.ForeignKey(User) 
    name = models.CharField(max_length=255) 
    bank = models.CharField(max_length=255) 
    address = models.CharField(max_length=255) 

+1

你有看到這個嗎? http://stackoverflow.com/questions/1072270/saving-profile-with-registration-in-django-registration – rafek 2013-03-08 14:43:18

+0

@rafek我嘗試用新的自定義用戶模型(在Django 1.5新) – user2054574 2013-03-08 14:45:59

回答

9

django的登記的主叉不與django的1.5兼容現在。

檢查this pull request

你有三個選擇:

  • 補丁Django的註冊代碼。您可以從拉取請求中獲取所需的更改。
  • 使用已修補一個非官方的叉。例如This one
  • 等待主叉的更新...
+1

我剛剛下載了當前的「主幹」從bitbucket版本的'django-registration'應用程序,它與Django 1.5一起工作(當我使用'pip'來安裝應用程序時它不工作)。我下載的版本號是'VERSION =(0,9,0,'beta',1)'。 – yellowcap 2013-03-27 13:11:16

+1

也許'django-registration2'?因爲'蛋黃-V Django的registration'只給出了'Django的登記0.8'這是不符合Django的兼容== 1.5.1 – boldnik 2013-06-05 19:32:46

4

link解釋的過程以及和Django的登記工作1.0

這裏除了上面的代碼一些額外的指針。

要更新的第一個名字改變這種在models.py

def user_registered_callback(sender, user, request, **kwargs): 
profile = ExUserProfile(user = user) 
profile.is_human = bool(request.POST["is_human"]) 
user.first_name = request.POST["firstname"] 
user.save() 
profile.save() 

user_registered.connect(user_registered_callback) 

,並在forms.py文件

class ExRegistrationForm(RegistrationForm): 
    is_human = forms.BooleanField(label = "Are you human?:") 
    firstname = forms.CharField(max_length=30) 
    lastname = forms.CharField(max_length=30) 

終於在表單上看到的變化創造一個合適的模板。該配置文件可以在管理通過創建一個在你的應用程序名爲admin.py文件,並寫入下面的代碼

from django.contrib import admin 
from django.contrib.auth.models import User 
from django.contrib.auth.admin import UserAdmin 
from prof.models import ExUserProfile 

admin.site.unregister(User) 

class UserProfileInline(admin.StackedInline): 
    model = ExUserProfile 

class UserProfileAdmin(UserAdmin): 
    inlines = [ UserProfileInline, ] 

admin.site.register(User, UserProfileAdmin) 
+0

這會不會實際創建既是用戶,我剛剛安裝了它,而不是'Django的registration'和ExUserProfile實例? – 2013-08-05 14:49:03

+1

是的,這是客觀的自定義用戶模型是通過將ExUserProfile關聯到用戶對象並保存必要的字段 – timberlake 2013-08-07 06:38:37

0

Django的註冊1.0已經最近發佈可以看出。它完全改寫爲使用基於類的視圖和Django 1.0自定義用戶模型支持。檢查出docs

相關問題