覆盖注册视图django-allauth

时间:2014-01-04 16:49:25

标签: python django django-allauth

我要求用户使用自定义表单填写额外字段。在其中一个领域,我必须让用户选择多个分层标签。为此,我需要将标记从视图传递到模板signup.html

from classes.Tags import Tags
from django.shortcuts import render_to_response
from allauth.socialaccount import views as signup_views

def signup_view(request):
    tags = Tags()
    parameters={}
    all_tags = tags.get_tags()
    parameters['all_tags'] = all_tags
    response = signup_views.signup(request)
    return response

在urls.py中,我在allauth urls包含line之前添加了这一行。

url(r'^accounts/social/signup/', 'mainapp.signup_views.signup_view', name = 'account_signup'),
url(r'^accounts/', include('allauth.urls')),

我需要的是我需要将all_tags添加到响应中,以便我可以从模板中访问它。我该怎么做?

1 个答案:

答案 0 :(得分:8)

This link有一些使用您自己的注册表单的详细信息。 IMO,您可以定义自己的表单(最终使用标签的自定义小部件)并直接使用它,而不必弄乱视图。

否则,@ PauloAlmeida是正确的。您可以使用以下内容从SignupView继承新类

class MySignupView(SignupView):

    def get_context_data(self, **kwargs):
        ret = super(MySignupView, self).get_context_data(**kwargs)
        ret['all_tags'] = Tags.get_tags()

        return ret

我宁愿使用自定义表单方法,因为它不会弄乱urls.py