Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按auto_now=True和auto_now_add=True对数据存储项进行排序_Python_Google App Engine_Google Cloud Datastore_Mako - Fatal编程技术网

Python 按auto_now=True和auto_now_add=True对数据存储项进行排序

Python 按auto_now=True和auto_now_add=True对数据存储项进行排序,python,google-app-engine,google-cloud-datastore,mako,Python,Google App Engine,Google Cloud Datastore,Mako,我正在尝试使用auto\u now=True和auto\u now\u add=True对数据存储中的项目进行年龄排序。我设法解决了datetime问题,但无法按年龄正确排序。我感谢你的建议。(对于大写的变量,我很抱歉,我最终会修复它们。)我的模型是: class Rep(db.Model): mAUTHOR = db.UserProperty(auto_current_user=True) mUNIQUE = db.StringProperty() mCOUNT = d

我正在尝试使用
auto\u now=True
auto\u now\u add=True
对数据存储中的项目进行年龄排序。我设法解决了
datetime
问题,但无法按年龄正确排序。我感谢你的建议。(对于大写的变量,我很抱歉,我最终会修复它们。)我的模型是:

class Rep(db.Model):
    mAUTHOR = db.UserProperty(auto_current_user=True)
    mUNIQUE = db.StringProperty()
    mCOUNT = db.IntegerProperty()
    mDATE = db.DateTimeProperty(auto_now=True)
    mDATE0 = db.DateTimeProperty(auto_now_add=True)
    mWEIGHT = db.IntegerProperty()
    mAGE = db.IntegerProperty()   
查询是:

    QUERY3 = Rep.all()
    QUERY3.filter("mAUTHOR =", user)
    QUERY3.order("mAGE")
    RESULTS3 = QUERY3.fetch(7)
这就是我在Mako模板中使用的内容:

    % for result in RESULTS3:
        <% result.mAGE = int((result.mDATE - result.mDATE0).seconds) %>
        <p>${result.mUNIQUE} (${result.mCOUNT}) (${result.mAGE})</p>
    % endfor  

谢谢

在我看来,当您检索记录时,即在执行查询之后,您似乎只在计算
mAGE
。在将对象放入数据存储之前,是否应该在每次修改对象时计算它

在那之前,你确定这是你想要做的吗
mAGE
将是您上次修改每条记录与创建记录之间的时间。这似乎是一件奇怪的事情。如果要按记录的实际年龄(创建后的时间)排序,请使用
mDATE0
进行排序。或者,如果要按最近的更改排序,请使用
mDATE

要反向排序,请使用
QUERY3.order(“-mDATE”)
(注意连字符)

mUNIQUE  mCOUNT  mAGE
A       (11)    (38604)
C       (19)    (5319)
D       (10)    (1797)
E       (17)    (2735)
F       (16)    (871)