Files
Example-TCG-Site/users/forms.py
2026-01-20 05:22:38 -06:00

48 lines
2.2 KiB
Python

from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import User, Profile, Address, PaymentMethod
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ('username', 'email')
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = User
fields = ('username', 'email')
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ('theme_preference',)
widgets = {
'theme_preference': forms.Select(attrs={'class': 'form-control'})
}
class AddressForm(forms.ModelForm):
class Meta:
model = Address
fields = ('name', 'street', 'city', 'state', 'zip_code', 'address_type', 'is_default')
widgets = {
'name': forms.TextInput(attrs={'class': 'form-input', 'placeholder': 'Full Name'}),
'street': forms.TextInput(attrs={'class': 'form-input', 'placeholder': 'Street Address'}),
'city': forms.TextInput(attrs={'class': 'form-input', 'placeholder': 'City'}),
'state': forms.TextInput(attrs={'class': 'form-input', 'placeholder': 'State'}),
'zip_code': forms.TextInput(attrs={'class': 'form-input', 'placeholder': 'ZIP Code'}),
'address_type': forms.Select(attrs={'class': 'form-select'}),
'is_default': forms.CheckboxInput(attrs={'class': 'form-checkbox'}),
}
class PaymentMethodForm(forms.ModelForm):
class Meta:
model = PaymentMethod
fields = ('brand', 'last4', 'exp_month', 'exp_year', 'is_default')
widgets = {
'brand': forms.TextInput(attrs={'class': 'form-input', 'placeholder': 'Card Brand (e.g. Visa)'}),
'last4': forms.TextInput(attrs={'class': 'form-input', 'placeholder': 'Last 4 Digits', 'maxlength': '4'}),
'exp_month': forms.NumberInput(attrs={'class': 'form-input', 'placeholder': 'Exp Month', 'min': '1', 'max': '12'}),
'exp_year': forms.NumberInput(attrs={'class': 'form-input', 'placeholder': 'Exp Year', 'min': '2024'}),
'is_default': forms.CheckboxInput(attrs={'class': 'form-checkbox'}),
}