Django: доступ к переменной сеанса при переопределении метода сохранения модели

Есть ли способ получить доступ к переменным сессий при переопределении любого метода сохранения модели

class Blog(models.Model):
  name = models.CharField(max_length=100)
  tagline = models.TextField()

  def save(self, *args, **kwargs):
    //Code for accessing session variable
    super(Blog, self).save(*args, **kwargs)

Спасибо,

1 ответ

Решение

Не напрямую

Вы можете добавить дополнительный аргумент к методу сохранения и удалить его перед вызовом супер-сохранения:

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

view...:
    instance.save(request=request)

Но если вы сохраняете форму, может быть лучше использовать

view...:
    instance = form.save(commit=False)
    # do some logic
    instance.save()
Другие вопросы по тегам