Django:在覆盖模型的save方法时访问会话变量

时间:2011-11-13 19:43:28

标签: django django-models

在覆盖任何模型保存方法

时,是否有任何方法可以访问会话变量
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 个答案:

答案 0 :(得分:2)

不直接

可以在save方法中添加一个额外的参数并在调用super save之前将其弹出:

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()