0

姜戈 1.4

抱歉,如果这是一个愚蠢的问题,我对 Django 还很陌生。我正在尝试通过内置的身份验证配置文件系统将用户和配置文件链接在一起。我能找到的所有例子都没有使用基于类的视图,这是我真正想要使用的东西。

基本上我想要一个结合个人资料和用户的表格,允许我同时创建两者。如果可能的话,我想使用相同的表单来编辑/创建用户 + 个人资料。

我为配置文件创建了一个模型:Profile

创建的表格:

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


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

将配置文件添加到用户模型似乎并未将其包含在 UserForm 中:

AUTH_PROFILE_MODULE = "creative_profile.Profile"

我尝试的第二种选择是在 forms.py 中定义单个表单,但是 form_class 属性只接受一个表单模型。

任何指针的帮助都会很棒,谢谢

4

2 回答 2

0

我以更简单的方式来做(我建议)。只需使用 django build in。在urls.py我添加了(r'^login/$','django.contrib.auth.views.login'). 在settings.py添加LOGIN_URL='/login/'MIDDLEWARE_CLASSES添加'django.contrib.auth.middleware.AuthenticationMiddleware'。如果要更改它,请在本地复制registration/login.html模板。进行此类操作后,您将能够以用户身份登录。忘了,您还应该从django.contrib.auth.models用户和组导入。

于 2012-11-26T19:20:50.907 回答
0

一种可能的解决方案是在 UserForm 中包含 Profile 字段并覆盖save()方法来填充 Profile 字段。

如果您不使用post_save 信号来创建Profile 模型,则save() 方法必须包含对 Profile 模型的get_or_create()调用。如果您使用 post_save 信号来创建 Profile 模型,则必须确保在调用 get_profile() 方法之前先保存用户。

于 2012-11-26T19:27:56.853 回答