是django中定义的system_user()?

时间:2011-01-20 17:04:50

标签: django photologue

我原来的问题实际上是如何将一个User外键添加到Photolog类型类(使用Imagekit)

我看到answer to a similar question,但当我尝试实施时,我得到了global name 'system_user' is not defined

我对此并不感到惊讶,但我感到惊讶的是,虽然这是一个答案,但我在django docs中找不到对system_user的引用。

(它不是在docs.djangoproject.com上,而django + system_user的谷歌并没有什么有趣的东西。)

我在Photologue models.py

中的class Photo中有这个
def save(self, *args, **kwargs):
    if self.title_slug is None:
        self.title_slug = slugify(self.title)
    if 'owner' not in self.__dict__:
         self.owner = system_user()               # this line fails
    super(Photo, self).save(*args, **kwargs)

我应该如何导入system_user(),或者我可以在这里使用什么?

1 个答案:

答案 0 :(得分:2)

不,system_user不是django函数。你应该将所有代码片段作为伪代码 - 他只是说“一个返回我的对象​​的函数”。

grep -ri "system_user" /path/to/django什么都不返回,所以它在django源中不存在。

在您链接的问题中查看已接受的答案,他会覆盖保存方法,传递用户对象,并手动将对象与用户关联。

在您的情况下,由于您使用的是模型,因此您必须将用户对象传递给模型save()方法。

# models
    def save(self, user=None, *args, **kwargs):
        if self.title_slug is None:
            self.title_slug = slugify(self.title)
        if user:
            self.owner = user
        super(Photo, self).save(*args, **kwargs)

# usage in view
myobj.save(user=request.user)