У вас нет понятия "текущий пользователь" в определении модели. Но у вас есть доступ к текущему пользователю в ваших представлениях (как request.user
), так что вы можете использовать его там для передачи правильного начального значения для вашего поля
в качестве примера (используя представление на основе функций):
def myview(request, ....):
if request.method == "POST":
# ...
else:
form = YourModelForm(initial={"field_name": request.user.is_superuser})
РЕДАКТИРОВАТЬ
Мне не нужен пользователь, но пользователь автора
Что я могу сказать ? Если вы хотите получить лучшие ответы, пишите лучшие вопросы - вы не включили в свой вопрос никакой контекст, даже соответствующие части вашей модели.
Это существо При этом значения по умолчанию для полей модели используются только в двух случаях: при создании нового экземпляра и при добавлении новых полей в существующую модель.
В первом случае ваш Article
или любой другой экземпляр модели еще не существует, поэтому у него еще не может быть "автора". IOW «автор» - это либо пользователь запроса (наиболее распространенный случай и, вероятно, ваш), либо другой пользователь, которого вы явно предоставили. В обоих случаях у вас есть правильный пользовательский экземпляр под рукой, и мой ответ выше применим (либо как есть, либо с некоторой адаптацией, которую вы должны сделать самостоятельно).
Во втором случае, это просто то, с чем вы сталкиваетесь при переносе данных.