Я загружаю данные json из migrations. Итак, в моем файле migrations я поместил следующий код
from django.db import migrations
from django.db import migrations
import json
from django.contrib.gis.geos import fromstr
from pathlib import Path
DATA_FILENAME = 'data.json'
def load_data(apps, schema_editor):
Shop = apps.get_model('shops', 'Shop')
jsonfile = Path(__file__).parents[2] / DATA_FILENAME
with open(str(jsonfile)) as datafile:
objects = json.load(datafile)
for obj in objects['elements']:
try:
objType = obj['type']
if objType == 'node':
tags = obj['tags']
name = tags.get('name','no-name')
longitude = obj.get('lon', 0)
latitude = obj.get('lat', 0)
location = fromstr(f'POINT({longitude} {latitude})', srid=4326)
Shop(name=name, location = location).save()
except KeyError:
pass
class Migration(migrations.Migration):
dependencies = [
('shops', '0001_initial'),
]
operations = [migrations.RunPython(load_data)]
Но это дает мне ошибку, о которой я понятия не имею - ошибка в этой строке - location = fromstr(f'POINT({longitude} {latitude})', srid=4326)
Ошибка -
File "/project/geo_django/shops/migrations/0002_auto_20190315_1120.py", line 26
location = fromstr(f'POINT({longitude} {latitude})', srid=4326)
^
SyntaxError: invalid syntax
Я использую Python 3.5.2





f'strings представлены в python 3.6pep-0498 (см. Python-версию)
Изменить эту строку
location = fromstr(f'POINT({longitude} {latitude})', srid=4326)
с этим -
location = fromstr('POINT({} {})'.format(longitude, latitude), srid=4326)
Это просто обычная синтаксическая ошибка Python, не имеющая ничего общего с django, geodjango, миграциями и т. д. (теги удалены).