2012-01-12 32 views
0

是否有一種方法可以禁用數據庫中的項目而不是將其刪除。禁用數據庫中的項目而不是刪除它

任何一個有任何想法,不要回復

+0

定義「item」。一些對象可以被禁用。觸發器,例如。但是我從你的評論中進一步看到,你指的是值/表格行。所以不,沒有標準的方法來「禁用」那些。 – 2012-01-12 10:30:39

回答

1

我想這取決於你的意思是「禁用」是什麼。你可以添加一個名爲例如BooleanFielddisabled,然後篩選查詢(通過custom manager可能是最好做)這樣反而

Mymodel.objects.all() 

Mymodel.objects.filter(disabled=False).all() 
+0

事情是我想刪除數據庫中的一個項目。但我與其他一些項目有外鍵關係,所以我想如果有辦法讓這個項目不活動。 – 2012-01-12 10:03:36

+0

如果我添加一個布爾型字段到當前模型,我可以看到更改的唯一方法是當我syncdb,並且這樣做是刪除表右? – 2012-01-12 10:04:45

+0

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.on_delete可能值得一看 – second 2012-01-12 10:05:13

0

您可以設置在表中的字段,你設置如果行是否有效如果該行已停用,則取消設置。

1

不在SQL中。什麼,你可能會結束了做要解決的問題是要麼

  • 移動「已禁用」值到另一個表,或者通過觸發器或存儲過程

  • 在默認值爲1的表格中添加一個'active'標誌並將其設置爲0而不是刪除。這將需要對每個不想查詢禁用記錄的查詢(並且活動= 1)有額外的條件。
相關問題