2017-01-05 5 views
0

У меня есть простая модель с двумя объектами. Один тип объекта (1) просто хранит информацию. Другой (2) хранит информацию и соединения между объектами. Соединение может быть 1-1, 1-2 или 2-2. Объект 2 имеет четыре поля внешнего ключа (от объекта и от объекта 1 & 2). Поскольку соединение может быть выполнено только между двумя объектами, я хочу указать в моей модели, что не все четыре внешних ключа могут быть заполнены одновременно, но только два в сочетании. Остальные должны быть оставлены пустыми. Как я могу это достичь?Как я могу потребовать заполнения двух - и только двух - четырех полей внешнего ключа в модели?

+0

Возможно, вы захотите изучить [общие отношения] (https://docs.djangoproject.com/en/1.10/ref/contrib/contenttypes/#generic-relations) –

ответ

0

Вы можете добавить некоторые проверки на уровне модели (либо непосредственно в методе save или с использованием проверкой API CF https://docs.djangoproject.com/en/1.10/ref/models/instances/#validating-objects), но это не будет насильственными на уровне базы данных, ни во время QuerySet.update операции (ср https://docs.djangoproject.com/en/1.10/ref/models/querysets/#update).

 Смежные вопросы

  • Нет связанных вопросов^_^