Как сохранить растр в 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?

enter image description here

Вернуться на верх