2012-11-26 29 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用户和组导入。