Подтвердить через поля модели родителей - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть две модели:

class Foo(models.Model):
    from = models.ForeignKey(Place)
    to = models.ForeignKey(Place)

class Bar(models.Model):
    foo = models.ForeignKey(Foo)
    place = models.ForeignKey(Place)

Мне нужно проверить поле места Бар может быть от или до.Например, если у меня есть из - Лондона и до - Нью-Йорка, я могу выбрать место для детской модели только между этими двумя местами.Как я могу сделать в сериализаторе?Спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018

Чтобы выполнить пользовательскую проверку для нескольких полей модели, вы должны использовать Model.clean ()

https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.clean

class Bar(models.Model):
    foo = models.ForeignKey(Foo)
    place = models.ForeignKey(Place)

    def clean(self):
        # Your check here
        if self.place: #between self.foo.from and self.foo.to
            #Your code here
            pass
        else:
            raise ValidationError("Place isn't between frow and to")
...