GeoDjango 和混音器。 'PointField' 没有属性“_meta”
GeoDjango and Mixer. 'PointField' has no attribute '_meta'
我有一个 Location
模型(大致)定义如下:
from django.contrib.gis.db import models
class Location(models.Model):
address = models.CharField(max_length=255)
gis = models.PointField(null=True)
name = models.CharField(max_length=255)
每当我尝试 mixer.blend('app.Location')
我得到:
AttributeError: Mixer (app.Location): type object 'PointField' has no attribute '_meta'
当我将它与设置为 None 或 Point 的字段混合时它可以工作,但我想知道是否有办法设置它以便它可以自己完成,特别是因为 faker 可以生成这个数据。
mixer.register
允许您自定义生成数据的方式。在这种情况下
from django.contrib.gis.geos import Point
mixer.register(
'app.Location',
gis=lambda: Point(
float(mixer.faker.latitude()),
float(mixer.faker.longitude()),
),
)
完成任务。
我有一个 Location
模型(大致)定义如下:
from django.contrib.gis.db import models
class Location(models.Model):
address = models.CharField(max_length=255)
gis = models.PointField(null=True)
name = models.CharField(max_length=255)
每当我尝试 mixer.blend('app.Location')
我得到:
AttributeError: Mixer (app.Location): type object 'PointField' has no attribute '_meta'
当我将它与设置为 None 或 Point 的字段混合时它可以工作,但我想知道是否有办法设置它以便它可以自己完成,特别是因为 faker 可以生成这个数据。
mixer.register
允许您自定义生成数据的方式。在这种情况下
from django.contrib.gis.geos import Point
mixer.register(
'app.Location',
gis=lambda: Point(
float(mixer.faker.latitude()),
float(mixer.faker.longitude()),
),
)
完成任务。