2017-08-07 135 views
2

我想在Django模型中保存一些日期列表,並且無法正確完成它。所以首先我試着last_visits = CharField(....)並寫了一個函數來爲Charfield添加值。這是行不通的,因爲我無法做出正確的清單。我發現 this(列表的JSONField模型屬性),但是將python時間存儲到JSON中會產生問題,因爲Json無法正確序列化它,並將其轉換爲str會導致新因爲我將不得不在稍後將其轉換回來。保存日期/時間在Django模型列表中

所以我的問題是:有沒有簡單的方法來保存多個日期(列表/數組)?

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() 

但這些都不奏效。請注意,我沒有立即使用所有這些,只是想對我所嘗試的內容進行概述。

回答

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) 
+0

在'EventData',您的意思是否'ForeignKey的(事件,...'? – jcfollower

+0

是的,對不起,我編輯我的答案 – Andrea

+0

感謝您的回答,但我真的不知道我在應該做的它感覺有點複製粘貼從一些代碼,但沒有以任何方式配置我的需要,是的,我知道什麼是ForeignKey 「我不認爲將日期列表存儲爲字符或文本字段是一件好事解決方案「這就是爲什麼我問這個問題...... – hansTheFranz

相關問題