geo_field в проверке читается как str

Я пытаюсь перенести проект с django-rest-framework-gis 0.7 на 0.8 и с django-rest-framework 2.4.3. до 3.0.5. Я решил много ошибок, но остановился на следующей проблеме.

Мой GeoFeatureModelSerializer имеет следующие свойства:

class Meta:
     model = RoadRoute
     id_field = False
     geo_field = 'geom'
     fields = ('auth_code', 'states', 'creation_date')


def validate(self, attrs):
     if len(attrs['states']) > 0:
          states = State.objects.filter(code__in=attrs['states']).unionagg()
          if attrs['geom'].within(states) is False:
               raise ValidationError(_('Route is not within the allowed states.'))
          else:
               return attrs
     else:
          raise ValidationError(_('States field can not be empty.'))

На моих тестах у меня появляется эта ошибка:

File "/home/wille/py-projects/routes_registry_api/routes_registry_api/routes/serializers.py", line 59, in validate
    if attrs['geom'].within(states) is False:
AttributeError: 'str' object has no attribute 'within'

Поле geom читается не как GeometryField, а как ул. В версии 0.7 DRF-gis тот же код работал правильно.

0 ответов

Другие вопросы по тегам