我原来的问题实际上是如何将一个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()
,或者我可以在这里使用什么?
答案 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)