【发布时间】:2017-12-16 02:51:36
【问题描述】:
我有一个经典的 GeoDjango 模型
from django.contrib.gis.db import models
class Location(models.Model):
vessel = models.ForeignKey(Vessel, on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
point = models.PointField()
但是用法看起来很笨拙;
>>> foo = somevessel.location_set.create(point=Point(5, 23))
>>> foo.point.x
5.0
我仍然想将位置存储为一个点,但更愿意使用看起来更原生的代码与模型进行交互,例如
>>> foo = somevessel.location_set.create(latitude=5, longitude=12)
>>> foo.latitude
5.0
这是否违反最佳做法?有没有一种简单的方法可以在 Django 中实现这一点?
【问题讨论】: