Files
JooL_website/apps/core/forms.py
2026-05-12 16:54:38 +00:00

30 lines
1.3 KiB
Python

import re
from django import forms
from .models import ContactRequest
class ContactForm(forms.ModelForm):
class Meta:
model = ContactRequest
fields = ['last_name', 'first_name', 'email', 'phone', 'message']
widgets = {
'last_name': forms.TextInput(attrs={'placeholder': 'Nom', 'class': 'cta-input'}),
'first_name': forms.TextInput(attrs={'placeholder': 'Prénom', 'class': 'cta-input'}),
'email': forms.EmailInput(attrs={'placeholder': 'Adresse email', 'class': 'cta-input'}),
'phone': forms.TextInput(attrs={'placeholder': 'Téléphone', 'class': 'cta-input', 'inputmode': 'numeric', 'pattern': '[0-9+ ]{6,20}'}),
'message': forms.Textarea(attrs={'placeholder': 'Votre demande…', 'class': 'cta-input cta-textarea', 'rows': 4}),
}
labels = {
'last_name': '',
'first_name': '',
'email': '',
'phone': '',
'message': '',
}
def clean_phone(self):
phone = self.cleaned_data.get('phone', '').strip()
if phone and not re.fullmatch(r'[0-9+\s\-]{6,20}', phone):
raise forms.ValidationError('Numéro invalide — chiffres uniquement.')
return phone