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