Je souhaite créer un compte à l'aide du numéro de téléphone comme nom d'utilisateur et générer du code OTP. Maintenant, je veux valider mon numéro de téléphone. Je crée une méthode is_phone_valid pour valider mon numéro de téléphone mais l'appelez par la méthode postale, mais je reçois une erreur Ceci est mon point de vue.py
class TempRegistration(models.Model): phone_number = models.CharField(max_length=45) otp_code = models.CharField(max_length=6) def __str__(self): return self.phone_number
4 Réponses :
Si vous souhaitez extraire le numéro de téléphone dans le Paramètres de poste [wiki] < / a>, alors vous devriez y accéder à cela dans En outre, vous ne pouvez pas retourner un booléen à la suite d'une demande. Cela doit être un self.request.post code>.
httpreesponse code>, par exemple A
jsonResponse code> strong> objet [django-doc]
: p>
je reçois TypeError is_phone_valid () prend 1 argument de position mais 2 ont été donnés
@Sajibhossain: Oui, vous auriez dû ajouter un auto code> ou l'a effectué un
@StaticMethod code>.
Vous devez définir la variable code> Phone_Number code>. J'espère que vous utilisez DRF, puis le paramètre phone_number code> sera disponible dans
demande.data code>
semble que vous utilisiez Django Reposework . Si oui, utilisez champ -level em> strong> - DOC DOC Validation de Sériorizers DRF , comme ci-dessous
# views.py class GetPhoneNumber(CreateAPIView): queryset = TempRegistration.objects.all() serializer_class = AccountsSerializer # serializers.py class AccountsSerializer(serializers.ModelSerializer): def validate_phone_number(self, phone_number): MOBILE_REGEX = re.compile('^(?:\+?88)?01[15-9]\d{8}$') if MOBILE_REGEX.match(phone_number): return phone_number else: raise serializers.ValidationError('No. not matching') class Meta: model = TempRegistration fields = '__all__'
Il ne peut pas valider le numéro de téléphone
La trace de trace que vous avez affichée explique qu'il ne peut pas trouver le Deuxièmement Votre question est de savoir comment appeler le Téléphone_number code> Vous passez à
auto.is_phone_valid (numéro_number) code> dans votre méthode postale.
is_phone_valid code> de l'intérieur de la classe? Vous devez faire passer
auto code> comme premier arg de cette méthode. P>
Téléphone_Number code> est dans les paramètres de poste?
Non, vous pouvez voir la méthode postale