【发布时间】:2022-01-19 14:30:22
【问题描述】:
在我的 django 项目中,连接了一个 PostgreSQL 数据库,我创建了这两个模型:
class Results(models.Model):
device = models.ForeignKey(Device, null=True, on_delete=models.SET_NULL)
proj_code = models.CharField(max_length=400)
res_key = models.SlugField(max_length=80, verbose_name="Message unique key", primary_key=True, unique=True)
read_date = models.DateTimeField(verbose_name="Datetime of vals readings")
unit = models.ForeignKey(ModbusDevice, null=True, on_delete=models.SET_NULL)
class VarsResults(models.Model):
id = models.AutoField(primary_key=True)
key_res = models.ForeignKey(Results, related_name="keyres", on_delete=models.CASCADE)
var_id = models.ForeignKey(ModbusVariable, null=True, on_delete=models.SET_NULL)
var_val = models.CharField(max_length=400, blank=True)
var_val_conv = models.CharField(max_length=100, blank=True, null=True)
base_byte_order = models.CharField(max_length=15)
var_hash = models.CharField(max_length=400)
has_error = models.BooleanField(default=False)
所以 VarsResults 对结果有一个外键,我会从基于结果的条件开始删除两个表中的一些记录,例如
DELETE RECORDS FROM RESULTS IF RESULTS read_date < VALUE
我也会自动删除 VarsResults 表中的所有相关记录。 django ORM中是否有方法或直接使用SQL来实现?
提前非常感谢
【问题讨论】:
标签: django postgresql