6
0

file.py 1000 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import uuid
  2. import enum
  3. from django.db import models
  4. from pycs_api.models import base
  5. from pycs_api.models.project import Project
  6. class Extensions(enum.Enum):
  7. JPG = ".jpg"
  8. JPEG = ".jpeg"
  9. PNG = ".png"
  10. def project_directory(instance: "File", filename: str):
  11. return f"uploads/{instance.project.id}/{filename}"
  12. class File(base.BaseModel):
  13. EXTENSIONS = [
  14. (Extensions.JPG, "JPG Image"),
  15. (Extensions.JPEG, "JPEG Image"),
  16. (Extensions.PNG, "PNG Image"),
  17. ]
  18. uuid = models.UUIDField(
  19. default=uuid.uuid4
  20. )
  21. project = models.ForeignKey(
  22. Project,
  23. on_delete=models.CASCADE,
  24. )
  25. extension = models.CharField(
  26. max_length=16,
  27. choices=EXTENSIONS
  28. )
  29. size = models.PositiveIntegerField()
  30. created = models.DateTimeField(auto_now_add=True)
  31. path = models.ImageField(upload_to=project_directory)
  32. class Meta:
  33. unique_together = [
  34. "project",
  35. "path"
  36. ]