在模板(Django)中实现归档日历时出现 IF 运算符错误

Posted

技术标签:

【中文标题】在模板(Django)中实现归档日历时出现 IF 运算符错误【英文标题】:IF -operator error when implementing archive calendar in template (Django) 【发布时间】:2015-05-27 16:24:34 【问题描述】:

我正在尝试使用日历月实现存档,但我不确定如何在我的模板中实现它并且我遇到了操作错误;错误信息;没有这样的功能:IF。非常感谢任何帮助。

def view_calendar(request):


date_from='2015-05-01'
date_to='2015-05-31'

year=2015
month=5

where = '%(year)s >= YEAR(date_from) AND IF(%(year)s > YEAR(date_from), \
 IF(%(month)s > MONTH(date_from), %(month)s >= MONTH(date_from), %(month)s < MONTH(date_from)), \
 IF(%(month)s < MONTH(date_from), %(month)s < MONTH(date_from), %(month)s >= MONTH(date_from))) \
 AND %(year)s <= YEAR(date_to) \
 AND %(month)s <= MONTH(date_to)' % \
 'year': year, 'month': month
calender = Topic.objects.extra(where=[where])

print may, "M"

return render(request,"topic_index_fe.html", 'calender': calender)

在模板中

  <div class="col-sm-3 col-sm-offset-1 blog-sidebar">

          <div class="sidebar-module">

          <h3>Archive</h3>

          <ol class="list-unstyled">
            #print calender 
                calender

              <li><a href="#">May 2015 </a></li>
              <li><a href="#">April 2015</a></li>
              <li><a href="#">March 2015</a></li>

          </ol>

          </div>
          <div class="sidebar-module">

          </div>
        </div><!-- /.blog-sidebar -->

【问题讨论】:

【参考方案1】:

由于您要指定 SQL WHERE 子句,因此您需要编写有效的 SQL。标准 SQL 中没有 IF 语句,因此出现错误。您可能想查看 SQL CASE 语句。

我真的无法告诉您使用所有这些 IF 语句要达到什么目的,您能否解释一下 WHERE 子句试图达到什么目的?

【讨论】:

我正在关注这篇 SO 帖子中的答案; ***.com/questions/30488105/…,还有其他方法可以实现吗? 老实说,我也没有,我尝试过这种实现,但只使用 AND 语句就足够了吗?

以上是关于在模板(Django)中实现归档日历时出现 IF 运算符错误的主要内容,如果未能解决你的问题,请参考以下文章

Django 模板中的 OR 条件

如何在django模板中实现列表迭代[重复]

django 在模板中实现过滤器

你将如何在 django 中实现聊天?

如何在 Jinja 中实现类似 Django 的标签

如何在flutter中实现日历功能,以便在DateTimePickerFormField中显示当前日期之后的日期,直到2天之后