11from django .contrib .gis .db import models
2+ from django .conf import settings
23from django .core .validators import FileExtensionValidator
34from django .db .models .fields .files import default_storage
45from django .db .models .signals import pre_delete
56from django .dispatch import receiver
67
8+ UPLOAD_TO = "staging/raster/" if settings .DEBUG else "production/raster/"
9+
710
811class RasterFile (models .Model ):
9- name = models .CharField (max_length = 155 )
12+ name = models .CharField (max_length = 155 , unique = True )
1013 created = models .DateTimeField (auto_now_add = True )
1114 file = models .FileField (
12- upload_to = "raster/" ,
15+ upload_to = UPLOAD_TO ,
16+ unique = True ,
1317 validators = [
1418 FileExtensionValidator (
1519 allowed_extensions = ["tiff" , "tif" , "geotiff" , "gtiff" ]
@@ -36,7 +40,7 @@ def delete_raster_file(sender, instance, **kwargs):
3640
3741
3842class RasterDataset (models .Model ):
39- name = models .CharField (max_length = 155 )
43+ name = models .CharField (max_length = 155 , unique = True )
4044 created = models .DateTimeField (auto_now_add = True )
4145 updated = models .DateTimeField (auto_now = True )
4246 file = models .ForeignKey (RasterFile , on_delete = models .PROTECT )
@@ -49,7 +53,7 @@ class Meta:
4953
5054
5155class VectorDataset (models .Model ):
52- name = models .CharField (max_length = 155 )
56+ name = models .CharField (max_length = 155 , unique = True )
5357 created = models .DateTimeField (auto_now_add = True )
5458 updated = models .DateTimeField (auto_now = True )
5559
@@ -73,7 +77,7 @@ class Meta:
7377
7478
7579class TabularDataset (models .Model ):
76- name = models .CharField (max_length = 155 )
80+ name = models .CharField (max_length = 155 , unique = True )
7781 created = models .DateTimeField (auto_now_add = True )
7882 updated = models .DateTimeField (auto_now = True )
7983
0 commit comments