从信号回调中访问表单的清理数据?

时间:2015-02-16 05:58:43

标签: django django-forms django-registration

我一直在关注此链接的教程,并且工作正常:

http://johnparsons.net/index.php/2013/06/28/creating-profiles-with-django-registration/

然而我唯一的问题是来自user_registered_callback方法的这一行:

profile.is_human = bool(request.POST["is_human"])

因为它直接访问请求变量(如果你删除了bool函数)。

我该如何做,以便我传递给我的模型的价值已经被推荐表格验证了?

1 个答案:

答案 0 :(得分:1)

表单实例未传递给此信号,因此我担心您必须再次验证数据:

def user_registered_callback(sender, user, request, **kwargs):

    form = ExRegistrationForm(request.POST)
    form.full_clean()

    profile = ExUserProfile(user=user)
    profile.is_human = form.cleaned_data['is_human']
    profile.save()