from django.db import models from classes.models import SchoolClass class Student(models.Model): GENDER_CHOICES = [('M', 'Male'), ('F', 'Female'), ('O', 'Other')] STATUS_CHOICES = [('active', 'Active'), ('inactive', 'Inactive'), ('graduated', 'Graduated')] first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) student_id = models.CharField(max_length=20, unique=True) email = models.EmailField(unique=True) phone = models.CharField(max_length=20, blank=True) date_of_birth = models.DateField(null=True, blank=True) gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='M') address = models.TextField(blank=True) school_class = models.ForeignKey(SchoolClass, on_delete=models.SET_NULL, null=True, blank=True, related_name='students') enrollment_date = models.DateField(auto_now_add=True) status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='active') photo = models.ImageField(upload_to='students/', blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f"{self.first_name} {self.last_name}" @property def full_name(self): return f"{self.first_name} {self.last_name}" class Meta: ordering = ['last_name', 'first_name']