django orm, как убедиться, что postgres поле массива не пустой список? - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть следующая модель для django. Эта модель создает поле массива с именем metric_vals, но оно позволяет массиву быть пустым массивом. Есть ли способ убедиться, что массив всегда является непустым?

from django.db import models
import uuid
from django.contrib.postgres.fields import ArrayField

class SampleModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    metric_vals = ArrayField(models.FloatField(null=False), null=False, default=list)

1 Ответ

0 голосов
/ 23 апреля 2020

Примерно так:

from django.core.exceptions import ValidationError

class SampleModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    metric_vals = ArrayField(models.FloatField(null=False), null=False, default=list)

    def save(self, *args, **kwargs):
        if self.metric_vals == []:
            raise ValidationError('Empty list not allowed')

        super().save(*args, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...