2016-06-13 4 views
0

Я перекрывая .save() метод модели Джанго, и я пытаюсь передать дополнительный аргумент при сохранении:Django - как использовать kwargs

Вид:

def form_valid(self, form):  
    response = super(DeliveryCreateView, self).form_valid(form)  
    self.object.save(owner=self.request.user) 
    return response 

В .save()

def save(self, *args, **kwargs):    
    owner = kwargs.pop('owner', None) 

Моя проблема в том, что владелец всегда приходит пустым. Что я делаю неправильно?

+0

«владелец» пуст или «владелец» не находится в 'kwargs'? – Gocht

+1

Это то, что вы действительно имеете в 'save()'? Потому что 'owner' - локальная переменная, которая исчезнет при возврате' save() '. Разве вы не имеете в виду 'self.owner = ...'? – alexis

ответ

0

Предполагая, что это стандартное представление для создания или обновления, суперкласс form_valid уже будет вызывать метод сохранения модели через форму. Вам придется либо справиться с этой ситуацией, либо не называть супер.

+0

Вы правы. Мне удалось передать аргумент, но, как вы сказали, save() вызывается дважды. –

Смежные вопросы