Skip to main content
 首页 » 编程设计

python之将日期/时间保存在模型 Django 的列表中

2024年10月01日33lexus

我想将一些日期保存为 Django 模型中的列表,但无法正确完成。所以首先我尝试了 last_visits = CharField(....) 并编写了一个函数来向该 Charfield 添加值。这没有用,因为我无法列出正确的列表。我找到了 this (列表的 JSONField 模型属性),但是将 python 时间存储到 JSON 中会产生问题,因为 Json 无法正确序列化它并将其转换为 str 会导致新问题,因为我必须稍后将其转换回来.

所以我的问题是:是否有一种简单的方法来保存多个日期(列表/数组)?

someList = list() 
global someList 
def logins(self): 
    someList.append(datetime.datetime.now()) 
    return someList  

那是我写的一个函数,它工作正常,但没有保存值。我将如何添加列表的旧值并将新值添加到模型属性(Charfield/textField/JSONField)中?

我试过如下:

#"last_visit" is the model attribute 
someList.append(self.last_visit) 
self.last_visit += json.dumps(datetime.datetime.now()) 
self.last_visit = someList 
self.last_visit.append(datetime.datetime.now()) 
self.last_visit.save() 

但这些都不起作用。请注意,我并没有一次使用所有这些,我只是想概述一下我的尝试。

请您参考如下方法:

我认为将日期列表存储为字符或文本字段不是一个好的解决方案。你为什么不使用模型关系?我向您展示了一个包含多个相关日期的 Event 对象的模型示例。使用 DateField 也方便过滤!!

class Event(models.Model): 
 
    name = models.CharField(max_length=255, unique=True, blank=False, null=False) 
 
 
class EventData(models.Model): 
 
    event = models.ForeignKey(Event, on_delete=models.CASCADE) 
    date = models.DateField(default=None, blank=False, null=False)