Представьте, что мы разрабатываем систему сообщений, и у каждого Message
есть внешний ключ для sender
.
Мы используем ModelForm
s, и есть MessageForm
, который выводит его поля из Message
.
Конечно, мы не хотим, чтобы пользователь могподделать sender
, опубликовав другой идентификатор отправителя .
Поэтому мы должны исключить sender
из ModelForm
и заполнить его из session
в сообщении.
Где и как я должен назначить произвольные данные полям ModelForm
?
В моем примере я, вероятно, хочу получить доступ к session
, поэтому нам нужен доступ кrequest
.
Означает ли это, что код должен быть в представлении сразу после создания формы?
Как нам назначить поле формы из кода и убедиться, что оно переопределяет данные POST?
(Конечно, пример довольно вымышленный и приведен здесь только для иллюстрации проблемы.)