[英]save a tuple to a django model
有没有办法将元组保存到 Django 模型?
例子:
Class User(models.Model):
location = models.tupleField()
其中User.location = (longitude, latitude)
也许您正在寻找GeoDjango 的 PointField :
from django.contrib.gis.db import models
Class User(models.Model):
location = models.PointField(help_text="Represented as (longitude, latitude)”)
老实说,我在 Django 文档中没有看到 tupleField。 我认为更好的方法是添加两个字段longitude
和latitude
或创建另一个模型来存储位置并在User
模型中添加ForeignKey
。
如果您觉得需要在单个字段中保存元组,您应该真正研究一下关系。 这就是它们被创建的原因。
旧答案:
这个答案假设您真的在保存位置。
如果您使用的是 PostgreSQL,则可以使用PostGIS 。 MySQL和 Oracle 具有内置的空间字段。
Django 已经支持地理数据。 例如——
from django.contrib.gis.db import models
class ModelName(models.Model):
centroid = models.GeometryField(blank=True, null=True)
然后您可以进行各种地理查询(例如查找指定区域内的地点,按距离排序等),您的 DBMS 将处理它们。 此外,您可以从该单个字段访问您的数据,例如 -
lat, long = [modelobject.centroid.x, modelobject.centroid.y]
# Or you can just use .x or .y directly
您可以在Geodjango 文档 中阅读有关它们的更多信息。
我推荐Django-Geoposition应用程序,此外,您可以在 Google 地图中查看纬度和经度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.