from django import forms from phonenumber_field.formfields import PhoneNumberField from phonenumber_field.widgets import PhoneNumberPrefixWidget from .models import Customer class CustomerForm(forms.ModelForm): phone = PhoneNumberField( region='BY', help_text='Формат: +375XXXXXXXXX или 80XXXXXXXXX', widget=forms.TextInput(attrs={'placeholder': '+375XXXXXXXXX'}) ) class Meta: model = Customer fields = ['name', 'email', 'phone', 'loyalty_tier', 'notes'] widgets = { 'notes': forms.Textarea(attrs={'rows': 3}), } def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # Ensure phone displays in E.164 format if self.instance and self.instance.phone: self.initial['phone'] = str(self.instance.phone) for field_name, field in self.fields.items(): if field_name == 'notes': # Textarea already has rows=3 from widget, just add class field.widget.attrs.update({'class': 'form-control'}) elif field_name == 'loyalty_tier': # Select fields need form-select class field.widget.attrs.update({'class': 'form-select'}) elif field_name == 'phone': # Phone field gets form-control class field.widget.attrs.update({'class': 'form-control'}) else: # Regular input fields get form-control class field.widget.attrs.update({'class': 'form-control'})