Django-序列化属性不在模型中

时间:2013-09-23 02:40:26

标签: python django serialization django-models django-serializer

我正在尝试使用其他数据序列化模型。我的模型看起来像这样:

class Object(models.Model):
    name = models.CharField(max_length=100, null=False)
    lat = models.FloatField()
    lng = models.FloatField()

我使用HTML5 / Ajax传递我的纬度/经度。当我得到它时,我正在使用自定义管理器来计算到当前位置的距离:

class Object(models.Manager):

    def closest(self, lat, lng):
        from django.db import connection
        cursor = connection.cursor()
        cursor.execute("""
            SELECT a.*, SQRT(
            POW(69.1 * (a.lat - %s), 2) +
            POW(69.1 * (%s - a.lng) * COS(a.lat / 57.3), 2)) AS distance
            FROM app_object a
            GROUP BY a.id
            ORDER BY distance
        """ % (lat, lng))
        results = []
        for row in cursor.fetchall():
            p = self.model(id=row[0],name=row[1],description=row[2])
            p.distance = row[3]
            results.append(p)
        return results`

当我做结果[0]。距离时,我得到一个距离。回到我的视图中,我序列化了结果,但只有name,lat和lng位于“fields”部分。如果我将“距离”传递给我的序列化函数,如下所示:     serialized_data = serializers.serialize('json',results,fields =“distance”)

字段值为空,表示“距离”不在模型中。知道该怎么办吗?

感谢。

0 个答案:

没有答案