Initial commit: Django project with boxes app

- Set up Django 5.2.9 project structure
- Add boxes app with Box and BoxType models
- Box: alphanumeric ID (max 10 chars) with foreign key to BoxType
- BoxType: name and dimensions (width/height/length in mm)
- Configure admin interface for both models
- Add comprehensive test suite (14 tests)
This commit is contained in:
2025-12-28 13:04:37 +01:00
commit accefa2533
16 changed files with 487 additions and 0 deletions

37
boxes/models.py Normal file
View File

@@ -0,0 +1,37 @@
from django.db import models
class BoxType(models.Model):
"""A type of storage box with specific dimensions."""
name = models.CharField(max_length=255)
width = models.PositiveIntegerField(help_text='Width in millimeters')
height = models.PositiveIntegerField(help_text='Height in millimeters')
length = models.PositiveIntegerField(help_text='Length in millimeters')
class Meta:
ordering = ['name']
def __str__(self):
return self.name
class Box(models.Model):
"""A storage box in the lab."""
id = models.CharField(
max_length=10,
primary_key=True,
help_text='Alphanumeric identifier (max 10 characters)'
)
box_type = models.ForeignKey(
BoxType,
on_delete=models.PROTECT,
related_name='boxes'
)
class Meta:
verbose_name_plural = 'boxes'
def __str__(self):
return self.id