2014-09-23 27 views
-1

我有一個具有可選日期時間字段的模型。如何取消具有現有值的django日期時間字段?

class Order(models.Model): 
    ... 
    fulfilled = models.DateTimeField(blank=True, null=True) 
    ... 

我可以更新記錄的日期時間爲實際的日期時間...

order = Order.objects.get(pk=99) 
order.fulfilled = datetime.datetime.now() 
order.save() 

or... 

order.update(fulfilled=datetime.datetime.now()) 

偶爾我需要刪除字段的值,或將其設置爲空值。我不知道如何做到這一點...

order = Order.objects.get(pk=99) 
order.fulfilled = null #? or '' or... 0 or... 
order.save() 
+0

爲什麼我得到一個倒票?這裏有些不清楚嗎?我在網上挖了一遍,試圖弄清楚如何清空/清空現有記錄的日期時間字段的值。沒有意見?只是一個downvote? – teewuane 2014-09-23 00:54:26

+1

模型字段是否始終可以爲空或自從您第一次定義它之後發生了變化?我問的原因是因爲您需要確保數據庫模式允許在該字段中出現空值。如果是這種情況,請嘗試將該字段設置爲'None'(Python的等價物爲'null')。 – Karl 2014-09-23 00:57:57

+0

@Karl是的,沒錯,我在看到你的評論之前就明白了這一點。我必須將它設置爲「無」。是的,它一直是空白=真,而空=真。謝謝! – teewuane 2014-09-23 01:00:59

回答

0

我只是想通了。

我需要設置履行爲無。

order = Order.objects.get(pk=99) 
order.fulfilled = None 
order.save() 
+1

甚至'Order.objects.filter(pk = 99).update(fulfilled = None)' – karthikr 2014-09-23 01:28:28

+0

@karthikr我喜歡這個建議,但應該注意''post_save'和'pre_save'信號在使用' .update()'在這種情況下影響我。所以'.save()'現在是我的選擇:) – teewuane 2014-09-25 19:01:20

相關問題