Как опубликовать идентификатор внешнего ключа только один раз в Django

class Department(models.Model):
name = models.CharField(max_length=50)

class Employee(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
department = models.ForeignKey(Department, on_delete=models.CASCADE)

Мне очень интересно, как это сделать. Предположим, есть три отдела с id 1, 2, 3. Так вот, если в модели сотрудника я разместил сотрудника с именем abc и отделом 1. Поэтому в следующий раз, если я попытаюсь разместить тот же самый идентификатор отдела, то есть 1 для другого сотрудника. Я не должен быть в состоянии сделать это. Валидация этого поля не работает, я полагаю, из-за внешнего ключа. Так как же этого добиться. Любая помощь будет очень признательна. Спасибо!!!

Вы ищете отношения "один к одному". При этом будет существовать только одна комбинация отдела и сотрудника.

department = models.OneToOneField(Department, on_delete=models.CASCADE)

Вот более подробная информация: https://docs.djangoproject.com/en/3.2/topics/db/examples/one_to_one/

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