m = super(ProfileSellerForm, self).save(commit=False)
m = super(ProfileSellerForm, self).save(commit=False)
This save() method accepts an optional commit keyword argument, which accepts either True or False. If you call save() with commit=False, then it will return an object that hasn't yet been saved to the database. In this case, it's up to you to call save() on the resulting model instance. This is useful if you want to do custom processing on the object before saving it, or if you want to use one of the specialized model saving options. commit is True by default.
slav0nicДа, спасибо, действительно очень просто и недолго, только непонятно пока зачем такой подход (сначала сейвим с False, потом сами “досохраняем”), почему нельзя просто переопределить save и делать дальше что положено?
чтение доки займёт минуты 2 wink
не сейвит изменения в базу
slav0nicТак а не проще сразу сохранить, как мне надо (то есть сразу создать “правильный объект”, а не создавать “неправильный” и заменять значения аттрибутов)?
если тебе после этого надо заменить значение поля на другое, а в другом случае не делать этого и тп.
slav0nicМожно пример, где именно могут возникнуть сложности? (я думаю не только мне будет интересно).
если есть готовая форма, которая что-то делает (не в 2 строки), то не проще
if form.is_valid():
item = form.save(commit=False)
item.added_by = request.user
item.save()