Python 如何在Django中实现此数据库模型?
Django目前不支持MySQL中的点数据类型。这就是为什么我创造了我自己的Python 如何在Django中实现此数据库模型?,python,mysql,database,django,Python,Mysql,Database,Django,Django目前不支持MySQL中的点数据类型。这就是为什么我创造了我自己的 class PointField(models.Field): def db_type(self): return 'Point' class Tag(models.Model): user = models.ForeignKey(User) utm = PointField() 如您所见,这是可行的,syncdb可以很好地创建模型 但是,我当前的代码使用原始SQL计算两点之
class PointField(models.Field):
def db_type(self):
return 'Point'
class Tag(models.Model):
user = models.ForeignKey(User)
utm = PointField()
如您所见,这是可行的,syncdb可以很好地创建模型
但是,我当前的代码使用原始SQL计算两点之间的长度
cursor.execute("SELECT user_id FROM life_tag WHERE\
(GLength(LineStringFromWKB(LineString(asbinary(utm), asbinary(PointFromWKB(point(%s, %s)))))) < 55)...
这表示:选择给定点和表格点之间的长度小于55的位置
如何使用Django而不是原始SQL实现这一点?我不想再做游标和SELECT语句了。我如何修改models.py才能做到这一点?您的问题有点不清楚-您只是问如何计算两点之间的距离?或者你希望ORM能为你提供一些功能 如果是后者,那么如果没有一些外部援助,这是不会发生的;几何和地理超出了大多数典型数据库映射系统的范围。您始终可以使用自动映射来检索您感兴趣的属性,并使用毕达哥拉斯或其他工具手动比较它们;没有SQL 关于我提到的“外部援助”,你可以看看哪些可能对你有用。对于有类似问题但未将Django用于ORM的人,也可以使用