Django userena mugshot小部件在一个表单中

时间:2012-09-12 09:13:19

标签: django forms

我想将django userena中的照片添加到初始注册表单中,以及用户名,密码和电子邮件地址。我在faq(http://docs.django-userena.org/en/latest/faq.html#how-do-i-add-extra-fields-to-forms)中说过,所以现在我有自己的表单继承了userena注册表单。我还重新定义了保存方法,以便在用户的个人资料中保存新的照片。但现在我不知道如何使该字段出现在表单中。我找不到任何示例,因为userena使用自动呈现它的模型。以同样的方式,我可以在这个表单中添加一个文本字段作为forms.CharField我想知道我应该使用什么来呈现照片?

1 个答案:

答案 0 :(得分:2)

看起来它很简单,只需按照userena常见问题解答中描述的步骤向表单添加一些额外的字段,并在新的forms.py中添加一些内容:

from django import forms    
from userena.forms import SignupForm

class SignupFormExtra(SignupForm):
    avatar = forms.ImageField()

    def save(self):
        new_user = super(SignupFormExtra, self).save()

        profile = new_user.get_profile()
        profile.mugshot = self.cleaned_data['avatar']
        profile.save()

        return new_user