from django import forms from django.contrib.auth.models import User from .models import Profile class UserRegistrationForm(forms.Form): username = forms.CharField( label='Username', max_length=150, widget=forms.TextInput(attrs={'class': 'form-group'}) ) email = forms.EmailField( label='Email', widget=forms.EmailInput(attrs={'class': 'form-group'}) ) password1 = forms.CharField( label='Password', widget=forms.PasswordInput(attrs={'class': 'form-group'}) ) password2 = forms.CharField( label='Confirm Password', widget=forms.PasswordInput(attrs={'class': 'form-group'}) ) def clean(self): cleaned_data = super().clean() password1 = cleaned_data.get("password1") password2 = cleaned_data.get("password2") if password1 and password2 and password1 != password2: raise forms.ValidationError("Les mots de passe ne correspondent pas.") return cleaned_data def clean_username(self): username = self.cleaned_data.get('username') if username and User.objects.filter(username__iexact=username).exists(): raise forms.ValidationError("Ce pseudo est déjà pris. Veuillez en choisir un autre.") return username class UserLoginForm(forms.Form): username = forms.CharField( label='Username', max_length=150, widget=forms.TextInput(attrs={'class': 'form-group'}) ) password = forms.CharField( label='Password', widget=forms.PasswordInput(attrs={'class': 'form-group'}) ) class UserUpdateForm(forms.ModelForm): class Meta: model = User fields = ['username', 'email'] class ProfileUpdateForm(forms.ModelForm): class Meta: model = Profile fields = ['avatar', 'biography'] class CompleteProfileForm(forms.ModelForm): class Meta: model = Profile fields = ['avatar', 'first_name', 'last_name', 'birth_date', 'biography']