Скажем, у меня есть этот метод:Можно ли использовать собственный тег внутри блока Django if?
def is_root_task(self, root=None):
'''Returns true if the task is the root of a series of other tasks'''
super_tasks = self.dependency_sub_task.all()
if not root:
return not super_tasks.exists()
else:
return not super_tasks.exclude(task_id__exact=root.id).exists()
И я зарегистрировать его так:
from django import template
from gantt_charts.models import Task
register = template.Library()
register.tag('is_root_task', Task.is_root_task)
Как я называю это внутри, если блок (или аналогичный)? Например, я хочу, чтобы это было в моей странице:
<ul>
{% for sub_task in task.sub_tasks %}
{% if is_root_task "sub_task" "task" %}
<li >
<p>{{sub_task.title}}</p>
<p>{{sub_task.description}}</p>
</li>
{% endif %}
{% empty %}
<li> No Sub-tasks</li>
{% endfor %}
</ul>
Я хочу передать переменные задачи (корень) и переменную sub_task (самообеспечение) к is_root_task и Eval его внутри, если блок. Это возможно?
Вам нужно сделать этот фильтр, а не тегом, тогда вы можете сделать '{% if sub_task | is_root_task: task%}'. –
'with' шаблон тегов mays help https://docs.djangoproject.com/en/dev/ref/templates/builtins/#with – Vinta
Я дам им идти, когда вернулся с – Pureferret