Igo*_*ato 3 python django unit-testing geodjango faker
我有一个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)
Run Code Online (Sandbox Code Playgroud)
每当我尝试时,mixer.blend('app.Location')我都会得到:
AttributeError: Mixer (app.Location): type object 'PointField' has no attribute '_meta'
Run Code Online (Sandbox Code Playgroud)
当我将它与设置为 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()),
),
)
Run Code Online (Sandbox Code Playgroud)
完成工作。
| 归档时间: |
|
| 查看次数: |
862 次 |
| 最近记录: |