2015-01-27 2 views
0

У меня есть модель Taskпредотвратить несколько попаданий в базу данных в шаблонах Джанго

class Task(models.Model): 
    member = models.ForeignKey(Member) 
    ... 

, а также мои модели Член с авт ...

class Member(AbstractBaseUser): 
    ... 
    def get_num_tasks(self): 
     return self.task_set.all().count() 

наконец у меня есть свой шаблон, как это, где я хочу, чтобы показать, как много задач, получили этот член ... но если он больше нуля, то добавить класс ...

<p {% if user.get_num_tasks > 0 %} class="green" {% endif %}>{{ user.get_num_tasks }}</p> 

Проблема здесь каждый раз, когда я загружаю свой шаблон, он дважды попадает в базу данных, один для проверки, если он больше нуля и еще один для отображения номера ...

Как я могу избежать этого?

ответ

1

Вы можете использовать with tag

{% with task_count=user.get_num_tasks %} 
    <p {% if task_count > 0 %} class="green" {% endif %}>{{ task_count }}</p> 
{% endwith %} 

Edit: я должен был удалить пробелы до и после уступке (task_count = user.get_num_tasks), в противном случае он выходит из строя.

+0

спасибо ... в любом случае мне пришлось удалить пробелы до и после назначения ... – ezdookie

+0

Не стесняйтесь редактировать ответ, чтобы он мог помочь другим в будущем – karthikr

Смежные вопросы