我的模特:
class Document(models.Model):
title = models.CharField(_('title'), null=False, blank=False, max_length=250)
description = models.TextField(_('description'), null=True, blank=True)
is_favourite = my_method()
class FavouriteDocumentUser(models.Model):
document = models.ForeignKey(Document)
user = models.ForeignKey(CustomUser)
class Meta:
unique_together = ('document', 'user',)
我需要一个字段'is_favourite'如果在FavouriteDocumentUser中存在一行,其中包含文档的id和记录用户的id,则该字段为true。
所以问题是:如何在模型的方法中获取当前用户?
我正在将这些模型用于django rest框架。
答案 0 :(得分:0)
你不能,因为Django ORM不知道Django身份验证。 当前用户可在request
对象中使用,该对象仅适用于您的视图。您需要将request.user
传递给模型方法。例如:
class Document(models.Model):
...
def is_favourite(user):
return self.favoritedocumentuser_set().filter(user=user).exists()
然后从视图中调用此方法:
def my_view(request):
...
if mydocument.is_favorite(request.user):
...do something...