Я хотел бы запросить модель на основе текущего пользователя в шаблоне - PullRequest
1 голос
/ 21 октября 2011

У меня есть проблема, где у меня что-то вроде этого:

class Thing(models.Model):
    def can_vote(self, user):
        if self.vote_set.filter(user=user).count() < 2:
            return True
        # (A pile of other conditions)

class SomeUser(models.Model):
    pass

class Vote(models.Model):
    user = models.ForeignKey(SomeUser)
    things = models.ForeignKey(Thing)

, и я хочу сделать это в шаблоне:

{% if thing.can_vote %}
   {# Review stuff #}
{% endif %}

В зависимости от того, проголосовал ли текущий пользовательменьше, чем количество раз или нет.Кажется, проблема в том, что Django не позволяет передавать параметры методу.Есть ли способ для меня, чтобы сделать это аккуратно?

1 Ответ

4 голосов
/ 21 октября 2011

Вы можете использовать пользовательский шаблон тега или фильтр . Если фильтр:

@register.filter
def can_vote_on(user, thing):
    if thing.vote_set.filter(user=user).count() < 2:
        return True
    # (A pile of other conditions)

В шаблоне:

{% if user|can_vote_on:thing %}
   {# Review stuff #}
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...