假設我有一個帶有事物表和事物之間關系表的模型,稱為 ThingRelations。當存在指向它的 ThingRelations 時,應該不可能洗掉它。這就是我試圖實作的方式:
from django.db import models
class ThingRelation(models.Model):
first_thing = models.ForeignKey('Thing', on_delete=models.PROTECT)
second_thing = models.ForeignKey('Thing', on_delete=models.PROTECT)
class Thing(models.Model):
name = CharField(max_length=260)
當沒有更多 ThingRelations 指向它時,如何自動洗掉它?
uj5u.com熱心網友回復:
你有這樣的選擇:
- 一個套路。它可以制作為 a 之類的
Command東西crontab。或者可以將其設計為periodiq例行程式。這樣您就可以重復選擇所有Thing與ThingRelation. signals.py行動。這樣,當條目 ofThingRelation被洗掉時,您應該檢查first_thing和second_thing以了解 是否有更多的ThingRelation關系指向它們。- 資料庫觸發器(例如PostgreSQL)。與
signal.py解決方案相同的想法,但在資料庫級別。
你應該選擇哪一個?取決于您的確切目標的詳細資訊。至于我,periodiq如果我的目標是高性能,我會在簡單的情況下使用選項和資料庫觸發器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389619.html
