Django Form没有密码

时间:2019-07-06 17:34:15

标签: python django django-forms django-views

我正在尝试使用Django表单制作用户注册视图。 我在网上看过,但找不到任何帮助。也许我听不懂推理,所以欢迎您提供解释。 我使用名为“ Utente”(意大利名称)的自定义类更改了标准用户

查看功能是一种简单的功能,它配置要传递给模板的“上下文”字典,以便可以通知表单或确认或错误。

views.py

def registrazione(request):
    context = {}

    if request.method == 'POST':
        context.update({ 'stato':'post'})
        form = UtenteChangeForm(request.POST)
        if form.is_valid():
            print("--FORM\n",form.cleaned_data,'\n-------')
            utente = Utente.objects.create_user(**form.cleaned_data)
            print("---UTENTE\n", utente)

            login(request, utente)
            if utente is not None:
                context.update({'utente':utente.username})
            else:
                print('ERROREEEEEEEEEEEE')

        else:
            context.update({ 'stato':'errore' })

    else: # GET
        form = UtenteCreationForm()
        if request.user.is_authenticated:
            context.update({ 'stato':'loggato' })
        else:
            context.update({ 'stato':'anonimo'})


    context.update({'form':form })

    return render(request, 'profilo/registrazione.html', context)

该表单应扩展标准用户创建表单。

forms.py

lass UtenteCreationForm(UserCreationForm):

    username = forms.CharField(min_length=5)
    email = forms.EmailField(min_length=5)
    first_name = forms.CharField()
    last_name = forms.CharField()
    data_nascita = forms.DateField(input_formats=['%d/%m/%Y'])
    cellulare =forms.RegexField(regex=r'^\+?\d{9,15}$')
    residenza = forms.CharField(min_length=5)

    class Meta(UserCreationForm):
        model = Utente
        fields = ('username','first_name', 'last_name', 'email', 'data_nascita', 'cellulare', 'residenza')

form.cleaned_data的打印内容放入stdout中(表示全部):

--FORM
 {'username': 'thomas', 'email': 'thoma@g.com', 'cellulare': '3341193124', 'residenza': 'viq culonia', 'password': None} 

第一个问题,为什么密码总是总是“无”?我尝试使用其他类型的密码,所以我应该已经满足密码要求。

第二个问题(可选),为什么未显示某些字段?他们没有任何要求(我没有设定),那么为什么不重设? 例如:我将“ Paolo”设置为“ first_name”,那么为什么不被接受? data_nascita改为1995年5月23日,所以格式正确,对吧?

注意,这是一个小型的大学项目,因此我最终可以剔除不是基本特征的东西。

谢谢大家的时间。

0 个答案:

没有答案