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:
37
boxes/models.py
Normal file
37
boxes/models.py
Normal 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
|
||||
Reference in New Issue
Block a user