Вы смешиваете термины.
«Предварительное заполнение» означает заполнение поля из другого поля.Это не то, как вы фильтруете вещи для всплывающих окон администратора, так как вы на самом деле не устанавливаете поле, а просто ограничиваете выбор и позволяете пользователю устанавливать поле из них.
Дополнительно, значение default
дляполе должно быть константой, так как оно передается в базу данных, которая не может использовать запрос для установки значения по умолчанию.
То, что вы действительно хотите, это что-то вроде limit_choices_to
( docs ) для вашего ForeignKey
, но даже тогда вы не можете использовать request
для этого;он должен работать с использованием полей в модели.Причина этого заключается в том, что если вы основываете его на пользователе, то некоторые пользователи не смогут выбрать текущее значение, установленное другим пользователем.Вы не хотите, чтобы company
менялся сам, когда пользователь просто хочет изменить content
, например, просто потому, что user
не дает текущего company
в фильтре.