#django #save
#django #Сохранить
Вопрос:
Я получаю save() got an unexpected keyword argument 'force_insert'
ошибку. Из этого http://groups.google.com/group/django-users/browse_thread/thread/2471efd68d56ad59
похоже, что ответ заключается в использовании:
def save(self, *args, **kwargs):
...
super(SiteUser, self).save(*args, **kwargs)
Мой вопрос в том, как бы вы указали force_insert=True
or force_insert=False
при выполнении этого.
Мой код:
def save(self, force_insert=False, force_update=False):
if not self.id:
self.pub_date = datetime.datetime.now()
self.updated_date = datetime.datetime.now()
self.description_html = markdown(self.description)
self.highlighted_code = self.highlight()
super(Snippet, self).save(force_insert, force_update)
Ответ №1:
kwargs
является dict
. Установите его так же, как и любое другое значение dict.
kwargs['force_insert'] = True
Комментарии:
1. Я вижу, что это работает, если вы хотите переопределить значение, но как бы вы просто указали его в качестве значения по умолчанию, как в моем коде?
2. Изменил свой код на: def save(self, * args, ** kwargs): если нет ‘force_insert’ в kwargs: kwargs[‘force_insert’] = False, если нет ‘force_update’ в kwargs: kwargs[‘force_update’] = False, если нет self.id : self.pub_date = datetime.datetime.now() self.updated_date = datetime.datetime.now() self.description_html = markdown(self.description) self.highlighted_code = self.highlight() super(фрагмент, self).save(* аргументы, ** kwargs) Но все еще получаю ту же ошибку. Действительно ли force_insert больше не поддерживается в Django 1.3.1 или что я делаю не так?
3. Я получаю save() получил неожиданный аргумент ключевого слова ‘force_insert’, даже если я выполняю del kwargs[‘force_insert’] вместо добавления. И это единственное место, где я что-либо делаю с force_insert в соответствии с grep.