Я не уверен, , какую карту вы имеете в виду, но если это так:
map = map_form.save(commit=False)
, то это просто переменная с именем map
, которая содержит экземплярMap
модель / класс.Всякий раз, когда вы сохраняете форму модели, вы возвращаете экземпляр соответствующей модели.
Используя commit=False
, вы прямо заявляете, что этот экземпляр должен не быть сохранен в базе данных (сейчас).Это в основном используется, чтобы сделать что-то еще с моделью, прежде чем сохранить ее в базе данных.Чтобы сослаться на ваш вопрос: Текущий пользователь связан с недавно созданным экземпляром map
.Поскольку это должно быть сделано в представлении (для доступа к запросу, содержащему пользователя), экземпляр сначала не сохраняется, пользователь добавляется, а затем экземпляр сохраняется.
Так что, если вы хотите сохранить этот экземплярВы должны вызвать метод save()
для этого экземпляра вручную:
map = map_form.save(commit=False) # create instance from form data (validated)
if some_condition_is_met:
map.property = set_a_certain_value
map.members.add(request.user) #relate current user to map
map.save() # now save the model to the database
Но я бы не назвал переменную map
, поскольку в Python есть встроенная функция с именем map()
.Если вы попытаетесь вызвать эту функцию позже в своем коде, она, вероятно, вызовет TypeError
, поскольку вы переопределяете имя функции экземпляром какого-либо объекта.
Подробнее о формах модели .