Я хочу получить x
и y
этим queryset
:
user = User.objects.values('id', 'email', 'username', 'point').first()
Это мой models
:
from django.db.models import Model
from django.contrib.gis.db.models import PointField
class BasePointModel(Model):
point = PointField(null=True, spatial_index=True, geography=True)
class Meta:
abstract = True
class User(AbstractUser, BasePointModel, HashableModel): # type: ignore
# First Name and Last Name do not cover name patterns
# around the globe.
name = CharField(_("Name of User"), blank=True, max_length=255)
is_online = BooleanField(_("Is online"), default=False)
Но я получаю следующий результат:
{'id': 85270,
'email': 'username_0@email.com',
'username': 'username_0',
'point': <Point object at 0x7f8e061cc2b8>}
Как я могу получить x
и y
, сделав набор запросов с values
?
Я хочу получить что-то вроде этого:
{'id': 85270,
'email': 'username_0@email.com',
'username': 'username_0',
'point__x': '-4.266398314110177',
'point__y': '-39.39432682357033'}
Я делаю запросы, которые возвращают 50 000 строк из базы данных, и замечаю, что производительность ухудшается из-за сериализации данных. Я хочу минимизировать сериализацию, возвращая values
.
Но PointField
всегда возвращает object
, и я до сих пор не нашел способа сериализовать его наилучшим образом.