Как сохранить растр в RasterField после сохранения в GeoDjango?
Я создаю приложение, используя Django с бэкендом PostGIS. Таким образом, GeoDjango. У меня есть модель с FileField
, и RasterField
[1]. Я хочу сохранить растровый объект в RasterField
после предоставления FileField
. Я пытаюсь добиться этого, используя сигнал post_save
.
class Layer(models.Model):
name = models.CharField(max_length=50, blank=True)
file = models.FileField(
upload_to='layers',
null=True,
max_length=500)
raster_file = RasterField(
null=True,
blank=True,
)
После некоторых исследований [2], вы должны использовать GDALRaster
[3], чтобы сделать растр объектом. В моих сигналах:
from django.contrib.gis.gdal import GDALRaster
from data_management.models import Layer
@receiver(post_save, sender=Layer)
def create_raster(sender, instance, **kwargs):
instance.raster_file = GDALRaster(instance.file.path)
instance.save()
Когда я загружаю файл в админке, raster_file не заполняется и не создается. Как мне сохранить растр, который загружается через поле file
, в моем поле raster_file
?