Initial commit
This commit is contained in:
29
apps/core/forms.py
Normal file
29
apps/core/forms.py
Normal file
@@ -0,0 +1,29 @@
|
||||
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
|
||||
Reference in New Issue
Block a user