2012-11-26 30 views
0

的Django 1.4Django的用戶資料 - 窗體

很抱歉,如果這是一個愚蠢的問題,我是相當新的Django的。 我正在嘗試通過內置身份驗證配置文件系統將用戶和配置文件鏈接在一起。所有這些我可以找到的例子不使用基於類的視圖,這是我真的很想使用。

基本上我想一個表單,結合配置文件和用戶允許我在同一時間創建兩個。如果可能的話,我想使用相同的表單編輯/創建用戶+配置文件。

我已經創建了概要文件的模型:檔案

創建形式:

class UserForm(forms.ModelForm): 
    class Meta: 
     model = User 


class ProfileRegisterView(FormView): 
    template_name = 'profile-register-form.html' 
    form_class = UserForm 
    success_url = '/account/created/' 

添加配置文件,用戶模型似乎並沒有向用戶窗體中包含它:

AUTH_PROFILE_MODULE = "creative_profile.Profile" 

我試過的第二種方法是在forms.py中定義單獨的窗體,但form_class attribu TE只接受一個表單模型..

任何指針幫助將是巨大的,感謝

回答

0

一種可能的解決方案是在您的用戶窗體中包含配置文件字段並覆蓋save()方法來填充配置文件字段。

如果您沒有使用post_save signal來創建它,那麼save()方法必須包含一個get_or_create()呼叫配置文件模型。如果您正在使用post_save信號來創建Profile模型,那麼在調用get_profile()方法之前,您必須確保先保存用戶。

0

我做的更簡單的方法(我認爲)。只需使用django build。在urls.py我加了(r'^login/$','django.contrib.auth.views.login')。在settings.py添加LOGIN_URL = '/登錄/'MIDDLEWARE_CLASSES添加'django.contrib.auth.middleware.AuthenticationMiddleware'。如果您想更改,請在本地複製registration/login.html模板。經過這樣的操作後,您將能夠以用戶身份登錄。忘記了,您還應該從django.contrib.auth.models用戶和組導入。