按钮

时间:2018-06-09 14:12:07

标签: django

我有一个带有标准视图的tasklist应用程序和另一个过滤任务列表以显示已完成任务的视图。我有一个隐藏按钮,但我不想让“隐藏”数据库的属性似乎有点过分。 语句中的一个简单的“隐藏”标志就足够了。

{% if hidden==False %}
<a class="btn btn-primary" href="{% url 'hide' %}" data-toggle="tooltip" data-placement="top" title="Hide Completed Tasks"><i class="fas fa-eye-slash"></i></a>
{% else %}
<a class="btn btn-primary" href="{% url 'home' %}" data-toggle="tooltip" data-placement="top" title="Hide Completed Tasks"><i class="fas fa-eye"></i></a>
{% endif %}

但我不知道在哪里放置隐藏在真与假之间的三元逻辑?我宁愿不诉诸js因为我认为这是不整洁的

1 个答案:

答案 0 :(得分:0)

无需使其过于复杂:

HTML:

  <div class="col-3">
      {% if flag %}
          <a class="btn btn-primary" href="{% url 'home' %}" data-toggle="tooltip" data-placement="top" title="Hide Completed Tasks"><i class="fas fa-eye"></i></a>
      {% else %}
          <a class="btn btn-primary" href="{% url 'hide' %}" data-toggle="tooltip" data-placement="top" title="Hide Completed Tasks"><i class="fas fa-eye-slash"></i></a>
      {% endif %}
  </div>

现在将一个变量放在视图函数中并将var添加到渲染的字典中:

def home(request):
    tasks = Task.objects
    flag = False
    return render(request, 'home/home.html', {'tasks': Task.objects.all().order_by('-pub_date'), 'flag':flag})

def hide(request):
    tasks = Task.objects
    flag = True
    return render(request, 'home/home.html', {'tasks': Task.objects.all().order_by('-pub_date').filter(completed=False), 'flag':flag})