Я создаю фабрику Django для модели, которая содержит MultiPolygonField.Выдает ошибку, когда я запускаю тест.Подробности ниже.
Я создал специального провайдера для подделки этого поля.Код взят из документации Django:
from django.contrib.gis.geos import (
Polygon,
MultiPolygon,
)
import factory
from faker import Faker
from faker.providers import BaseProvider
fake = Faker()
class Provider(BaseProvider):
def mpoly(self):
p1 = Polygon( ((0, 0), (0, 1), (1, 1), (0, 0)) )
p2 = Polygon( ((1, 1), (1, 2), (2, 2), (1, 1)) )
mpoly = MultiPolygon(p1, p2)
return mpoly
fake.add_provider(Provider)
class GeographyFactory(factory.DjangoModelFactory):
"""
A Factory to generate mock GeographyFactory objects to be used
in tests.
"""
class Meta:
model = 'location.Geography'
name = factory.Faker('name')
mpoly = fake.mpoly
Ошибка, которую я получаю при запуске тестов, однако, поставила меня в тупик.
TypeError: Cannot set Geography SpatialProxy (MULTIPOLYGON) with value of type: <class 'method'>
Похоже, яне возвращает правильный тип, но я не могу понять, что он хочет вместо объекта MultiPolygon, который я возвращаю.Почему он думает, что я возвращаюсь <class 'method'>
?
Любые предложения приветствуются!