在你forms.py,延長DjangoRegistration格式如:
class MyExtendedForm(RegistrationForm):
first_name = forms.CharField(widget=forms.TextInput(label="first_name"))
last_name = forms.CharField(widget=forms.TextInput(label="last_name"))
在urls.py
,告訴Django註冊使用這個擴展形式:
# using my registration form to override the default
(r'^register/$',
register,
{'backend': 'registration.backends.default.DefaultBackend',
'form_class': MyExtendedForm}),
定義user_created
以節省額外購買信息:
def user_created(sender, user, request, **kwargs):
"""
Called via signals when user registers. Creates different profiles and
associations
"""
form = MyExtendedForm(request.Post)
# Update first and last name for user
user.first_name=form.data['first_name']
user.last_name=form.data['last_name']
user.save()
然後,註冊fo ř從django的登記信號來調用函數的任何註冊處理後:
from registration.signals import user_registered
user_registered.connect(user_created)
使一些相對小修改上述代碼之後,這個工作。謝謝! –
我的修改仍未發佈。沒有它們,你的代碼就無法工作。所以爲了其他人的利益,我在這裏發佈它們: 類MyExtendedForm中的每一行上都有一個缺少的右括號。另外,user_created中的第一行應該是form = MyExtendedForm(request.Post)。 user_created的定義必須在註冊Django註冊信號之前進行。 –
是的,我剛剛按邏輯順序給出了一個原型代碼。很高興它對你有效。 – zaphod