Django admin, как запретить пользователю вставлять записи только в его стране? - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть эта модель

  title= country = models.CharField(max_length=25)
  country = models.ForeignKey(Country)
  city = models.ForeignKey(City)
  user = country = models.ForeignKey(User)

При использовании страницы (Добавить регистр +) в администраторе по умолчанию Django, есть ли возможность настроить параметры раскрывающихся списков страны и города в зависимости от текущего пользователя?
Например: если текущий вошедший в систему пользователь из США, то в раскрывающемся списке стран будет отображаться только один вариант (США), а в раскрывающемся списке городов будут показаны только города в США. Затем этот пользователь будет разрешен. только для добавления случаев, связанных с его / ее страной.

1 Ответ

0 голосов
/ 14 апреля 2020

Чтобы ответить на ваш вопрос: да, конечно, это возможно - ЕСЛИ вы, конечно, знаете, к какой стране принадлежит и ваш пользователь.

Вам придется

1 / исключить поле country из формы ,

2 / использовать formfield_for_foreignkey () , чтобы отфильтровать набор запросов city поля

3 / и вручную заполнить поле модели в save_model() методе вашего ModelAdmin

Обратите внимание, что просто читая modeladmin's do c мог бы ответить на ваш вопрос - есть примеры для очень похожих случаев использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...