Могу ли я использовать текущего зарегистрированного пользователя в models.py?

Что у меня есть:

Стандартная модель django User с вложенной моделью Profile, которая, помимо прочего, содержит ForeignKey к модели Office. Таким образом, каждый пользователь в моем приложении привязан к определенному офису. И в каждом офисе есть несколько смен.

models.py:

class Profile(models.Model):
    id = models.AutoField(primary_key=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    office = models.ForeignKey(Office, on_delete=models.RESTRICT)

class Office(models.Model):
    id = models.AutoField(primary_key=True)
    short_name = models.CharField(max_length=3, default='FRA', null=True, unique=True)
    long_name = models.CharField(max_length=10, default='Frankfurt', null=True, unique=True)

class Shift(models.Model):
    id = models.AutoField(primary_key=True)
    office = models.ForeignKey(Office, on_delete=models.RESTRICT)
    short_name = models.CharField(max_length=5, default="")
    long_name = models.CharField(max_length=20, default="")

Что я пытаюсь сделать:

Теперь, в моем CreateView я хочу ограничить доступные варианты в поле "shift" только теми, которые прикреплены к офису текущего вошедшего пользователя. Я думал об использовании опции limit_choices_to в ForeignKey, но я не могу понять, как получить доступ к информации о пользователе в модели? Что-то вроде

class Shift(models.Model):
    id = models.AutoField(primary_key=True)
    office = models.ForeignKey(Office, on_delete=models.RESTRICT, limit_choices_to={'office': ???})
    short_name = models.CharField(max_length=5, default="")
    long_name = models.CharField(max_length=20, default="")
Вернуться на верх