PGsql удаление полей в таблице и связанных с ними полей в анотере одной командой

В моем проекте django есть две модели:

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) on_delete=models.CASCADE)
    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)
    var_hash = models.CharField(max_length=400) has_error = models.BooleanField(default=False)

Итак, VarsResults имеет ключ_res ForeignKey к таблице Results. Я бы, используя PGSql, создал запрос на удаление ВСЕХ данных, начиная с Results, из определенных данных и автоматически удалил бы связанные с ними строки в VarsResults, например, так:

DELETE FROM Results WHERE read_date < "2022-01-01" (and delete also the related VarsResults rows)

Заранее большое спасибо Мануэль

Вернуться на верх