Python Django ORM问题

Python Django ORM问题,python,django,cassandra,Python,Django,Cassandra,我正在学习RestAPI,当我试图发布数据以更新我的数据库列时,修改后的_on列应自动填充到当前日期和时间,但不会更新 我目前正在使用django cassandra引擎ORM,其中没有像auto_add_now或auto_now这样的功能 谁能给我一个建议,我哪里做错了? 模型类: 我的序列化类: 到 将已修改的上更改为已修改的上 您可以尝试: create_date = models.DateField(auto_now_add=True,

我正在学习RestAPI,当我试图发布数据以更新我的数据库列时,修改后的_on列应自动填充到当前日期和时间,但不会更新

我目前正在使用django cassandra引擎ORM,其中没有像auto_add_now或auto_now这样的功能

谁能给我一个建议,我哪里做错了? 模型类:

我的序列化类:

将已修改的上更改为已修改的上

您可以尝试:

create_date = models.DateField(auto_now_add=True,
                               verbose_name=u'Create date')
update_date = models.DateTime(auto_now=True,
                              verbose_name=u'Update date')
auto_now_add在首次创建对象时自动将字段设置为now。 auto_now=True每次保存对象时自动将字段设置为“现在”。
Doc是。

您现在应该使用utils来表示时区感知时间

from django.utils.timezone import now
此外,在模型中,您应该设置函数未计算值,此后不加括号

MODIFIED_AT = serializers.DateTimeField(default=now, source='modified_on')

请确保在您的模型中为您修改的_at字段添加auto_now=True。 每次保存对象时,它会自动将字段设置为“现在”。用于“上次修改”时间戳。请注意,始终使用当前日期;它不仅仅是一个可以覆盖的默认值

例如:

class Mydb(DjangoCassandraModel):
    creation_date = columns.DateTime(auto_now_add=True)
    modified_on = columns.DateTime(auto_now=True)
此处的文档:

使用default=datetime.datetime.today作为字段的默认值。由于通过添加立即调用该函数,因此在第一次加载代码时该函数只被调用一次,此时的datetime将被放入默认值,并且在重新加载代码之前不会更新。也就是说,重新启动服务器

如果您希望始终使用当时的当前时间,请不要使用,以使Django每次都调用该函数。默认值=datetime.datetime.today

不过,您最好现在就使用,就像iklinac在回答中所做的那样,因为这也尊重您的时区设置。他的答案也省略了父母,得出了正确的结果

from django.utils.timezone import now
...
    MODIFIED_AT = serializers.DateTimeField(default=now, source='modified_on')
from django.utils.timezone import now
MODIFIED_AT = serializers.DateTimeField(default=now, source='modified_on')
class Mydb(DjangoCassandraModel):
    creation_date = columns.DateTime(auto_now_add=True)
    modified_on = columns.DateTime(auto_now=True)
from django.utils.timezone import now
...
    MODIFIED_AT = serializers.DateTimeField(default=now, source='modified_on')