38193-vm/core/forms.py
2026-02-06 17:02:42 +00:00

38 lines
2.0 KiB
Python

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import Product, ProductImage, Profile
class ProductForm(forms.ModelForm):
class Meta:
model = Product
fields = ['category', 'name', 'description', 'price', 'stock', 'image', 'is_available']
widgets = {
'category': forms.Select(attrs={'class': 'form-select'}),
'name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Product Name'}),
'description': forms.Textarea(attrs={'class': 'form-control', 'rows': 4, 'placeholder': 'Detailed description of your product...'}),
'price': forms.NumberInput(attrs={'class': 'form-control', 'placeholder': '0.00'}),
'stock': forms.NumberInput(attrs={'class': 'form-control', 'placeholder': '0'}),
'image': forms.ClearableFileInput(attrs={'class': 'form-control'}),
'is_available': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
}
class SignUpForm(UserCreationForm):
email = forms.EmailField(required=True, widget=forms.EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email Address'}))
first_name = forms.CharField(max_length=30, required=True, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'First Name'}))
last_name = forms.CharField(max_length=30, required=True, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Last Name'}))
class Meta(UserCreationForm.Meta):
model = User
fields = UserCreationForm.Meta.fields + ('email', 'first_name', 'last_name')
def save(self, commit=True):
user = super().save(commit=False)
user.email = self.cleaned_data["email"]
user.first_name = self.cleaned_data["first_name"]
user.last_name = self.cleaned_data["last_name"]
if commit:
user.save()
Profile.objects.get_or_create(user=user)
return user