Возможно ли получить объект request.user в функции, определенной для модели. Например:Получить объект request.user
class Event(models.Model):
description = models.TextField()
author = models.ForeignKey(User)
def has_upvoted(self):
return Up.objects.filter(user = self.request.user,
event = self.id)
Я использую Джанго «пользователь» модель, которая позволяет «request.user» вернуть объект пользователя. Возможно ли получить его в вышеуказанной функции? has_upvoted() '. Кроме того, фильтр seconf, используемый в приведенной выше функции, принимает экземпляр самой модели «Событие». То, что я написал, неверно. Итак, каков правильный способ сделать это?
Явное пропускание пользователя в качестве аргумента выглядит очень очевидным для меня ... Хак, к которому вы обращаетесь, действительно очень плохая практика по всем стандартам. –
Да, это очень очевидно и легко ... Я ответил, потому что вопрос был другим, она обновила вопрос. – Goin
cf Блог Джеймса Беннетта (http://www.b-list.org/weblog/2008/dec/24/admin/): «(...) то, что известно как« threadlocal hack », в основном это связано с приложением запроса .user в своего рода волшебную глобально доступную переменную, и это очень плохая вещь, которую вы можете использовать, если не знаете, что делаете. Это также, как правило, очень плохая вещь, даже если вы знаете, потому что вы, вероятно, просто делаете это, потому что вы ленивы и не хотите, чтобы вы правильно передавали информацию. Поэтому, если вы видите, что кто-то предлагает вам сделать это, используя «threadlocal», игнорируйте этого человека.« –