我正在为我开始的新 GeoDjango 项目编写测试。通常我使用Factory Boy和Faker来创建模型实例进行测试。但是,我不清楚如何模拟 GeoDjango PointField 字段。在Spacialite中查看记录时,它显示为二进制 blob。
我对 GIS 的东西完全陌生,对如何在 Django 中为 PointFields 创建工厂有点困惑。
# models.py
from django.contrib.gis.db import models
class Place(models.Model):
name = models.CharField(max_length=255)
location = models.PointField(blank=True, null=True)
objects = models.GeoManager()
def __str__(self):
return "%s" % self.name
# factories.py
import factory
from faker import Factory as FakerFactory
from . import models
faker = FakerFactory.create()
class PlaceFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.Place
name = factory.LazyAttribute(lambda x: faker.name())
#location = What do I do?