3
我正在为我开始的一个新的GeoDjango项目编写测试。通常我使用Factory Boy和Faker来创建用于测试的模型实例。然而,我不清楚你如何模拟GeoDjango PointField字段。在查看Spacialite中的记录时,它显示为二进制块。使用Factory Boy和GeoDjango PointField
我完全不熟悉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?
如果不固定在工厂的男孩,这结帐扩展模型,妈妈(现在我创建的测试记录首选库):这确实https://github.com/sigma-geosistemas/mommy_spatial_generators –