Можно ли установить только определенный тип пользователя в качестве внешнего ключа в поле модели
У меня есть модель CustomUser, которая хранит два типа пользователей, преподавателей и студентов. В модели есть поле regd_as, которое хранит тип пользователя. Модель выглядит следующим образом:
class CustomUser(AbstractBaseUser, PermissionsMixin):
REGD_AS_CHOICES = (
('TCH', 'TEACHER'),
('STU', 'STUDENT'),
)
id = models.UUIDField(primary_key = True, editable = False, default = uuid.uuid4)
email = models.EmailField(unique=True)
date_joined = models.DateTimeField(auto_now_add = True)
regd_as = models.CharField(max_length= 10, choices= REGD_AS_CHOICES, null=True)
is_staff = models.BooleanField(default=False)
is_active = models.Boolea
Теперь я хочу иметь модель, которая будет хранить реферальный код, сгенерированный только для пользователей, которые являются учителями. Модель выглядит следующим образом:
class ReferalCode(models.Model):
id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
teacher_user = models.ForeignKey(CustomUser, on_delete=models.SET_NULL, related_name='teacher_user_referal', null=True)
referal_code = models.CharField(max_length=100, unique=True,null=True, blank=True)
Вопрос
Есть ли способ задать только учителей из модели **CustomUser** в качестве foreignkey для teacher_user напрямую?В настоящее время я использую сигналы для хранения только учителей в качестве пользователя в модели ReferalCode.