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

时间:2017-08-07 13:18:14

标签: python django

我想将一些日期保存为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()

但这些都没有奏效。请注意,我没有立即使用所有这些,我只是想概述一下我的尝试。

1 个答案:

答案 0 :(得分:2)

我不认为将日期列表存储为字符或文本字段是一个很好的解决方案。为什么不使用模型关系?我向您展示了一个包含多个相关日期的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)