我想将一些日期保存为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()
但这些都没有奏效。请注意,我没有立即使用所有这些,我只是想概述一下我的尝试。
答案 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)