使用django-allauth,我迫使新用戶使用自定義ACCOUNT_SIGNUP_FORM來註冊其他配置文件信息。將上下文值傳遞給django-allauth中的配置文件註冊模板
settings.py
ACCOUNT_SIGNUP_FORM_CLASS = 'profiles.signup.ProfileSignupForm'
SOCIALACCOUNT_AUTO_SIGNUP = False
這ProfileSignupForm然後在改性allauth /模板/ socialaccount/signup.html模板呈現。此修改後的模板呈現新用戶會話中定義的新用戶公司的徽標(我使用的邀請鏈接首先轉到RedirectView,寫入會話,然後轉發到新註冊)。
signup.html
<html>
<body>
<img src="{{ logo }}" />
{% crispy form %}
</body>
</html>
我怎麼能拉從我的會話公司徽標,並把它傳遞給我的模板,而不建立該信息庫和修改註冊查看?
這種做法是這樣的:
class SignupView(RedirectAuthenticatedUserMixin, CloseableSignupMixin, FormView):
def dispatch(self, request, *args, **kwargs):
...
self.company = request.session.get('company')
...
def get_context_data(self, **kwargs):
...
context['logo'] = company.logo
...
非常感謝,直接訪問請求正是我所需要的。當你們提到創建自定義網址時,是否將socialauth回調網址設置爲新的SignupView?或者,您的意思是設置SOCIALACCOUNT_AUTO_SIGNUP = True,然後創建一個適配器以重定向到自定義SignupView,如果用戶沒有配置文件存在的話? –
我們不是在談論如何提供任何設置參數,它的簡單..在你的根urls.py文件中你包含這行(r'^ accounts /',include('allauth.urls'))包含所有-auth's urls ..在上面的行之前定義一個單獨的url,其正則表達式與all-auth的註冊url相同url(r「^ signup/$」,MySignupView,name =「account_signup」)。現在非社會註冊將通過這個視圖,你可以添加你想要的任何上下文變量。 –