Ограничения Django: уникальные вместе и принимающие одно и только одно значение

Я пытаюсь реализовать ограничение для следующей модели:

class Consumption(models.Model):
    simcard = models.ForeignKey(SimCard, on_delete=models.CASCADE)
    start_date = models.DateTimeField()
    duration_billed = models.FloatField(null=True)
    volume_billed = models.FloatField(null=True)
    sms_billed = models.FloatField(null=True)

Я хочу ограничить пользователя в сохранении одного и только одного значения для duration_billed, volume_billed, sms_billed для заданной simcard и start_date.

У меня есть следующий мета-класс:

class Meta:
    constraints = [
                UniqueConstraint(
                    fields=['simcard', 'start_date', 'duration_billed'],
                    name='unique_simcard_and_start_date_and_duration_billed'
                ),
                UniqueConstraint(
                    fields=['simcard', 'start_date', 'volume_billed'],
                    name='unique_simcard_and_start_date_and_volume_billed'
                ),
                UniqueConstraint(
                    fields=['simcard', 'start_date', 'sms_billed'],
                    name='unique_simcard_and_start_date_and_sms_billed'
                ),
            ]

Проблема, с которой я столкнулся при работе с ограничениями, заключается в том, что БД принимает несколько значений duration_billed, volume_billed, sms_billed для заданной simcard и start_date.

Результат, которого я пытаюсь достичь: если продолжительность_выставленного счета существует для данной симкарты и даты начала, пользователь не должен иметь возможности импортировать новую продолжительность_выставленного счета (даже если значение отличается от того, которое хранится в DB) для той же симкарты и даты начала. Та же цель для volume_billed и sms_billed.

Надеюсь, моя проблема ясна. Любая помощь или совет будут очень признательны 🙏

Большое спасибо заранее

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