运行服务器时未调用python类内部的函数

问题描述 投票:0回答:1

我正在尝试验证注册表格中的唯一用户名。在注册表格中输入详细信息后,我单击提交按钮,而不是通过给定的消息引发验证错误,它会失败并在/ register /处出现Validationerror错误。我也在尝试在函数内部打印字符串。但它也不会打印出来。它实际上是调用clean函数吗?我正在用自我实现这一目标。它应该被称为!。我在想什么吗?

class Register_Form(forms.Form):


    user_id = forms.CharField(label="User Name",widget = forms.TextInput(
                                attrs = {"class":"form-control"}
                                ))

    email_id = forms.CharField(label = "Email",widget = forms.EmailInput(
                                attrs = {"class":"form-control"}
                                ))

    password = forms.CharField(label = "Password",widget = forms.PasswordInput(
                                attrs = {"class":"form-control"}
                                ))
    confirm_pass = forms.CharField(label = "Confirm Password",widget = forms.PasswordInput(
                                attrs = {"class":"form-control"}
                                ))

     def clean_username(self):
         user_id = self.cleaned_data["user_id"]
         print("Entered")
         ue = User.objects.filter(username=user_id)
         if ue.exists():
             raise forms.ValidationError("User name not available")
         return user_id 
python django validation django-forms forms-authentication
1个回答
0
投票

没有被调用,您通过self的事实并不意味着它会自动运行,您只是在使用self扩展您的功能,以便它可以继承其属性。

[在类内部的某个地方,您必须运行self.clean_username(),或者如果您构造类,例如RF = Register_Form(),您必须致电RF.clean_username()

© www.soinside.com 2019 - 2024. All rights reserved.