【发布时间】:2017-11-14 00:26:27
【问题描述】:
我的本地机器和开发机器上分别安装了 SQLite 和 MySQL。以下在我的本地机器上运行良好(使用 SQLite):
select_single = {'date': "strftime('%%Y-%%m-%%d',projectName_Modelname.created)"}
queryset.extra(select=select_single)
但由于strftime 不适用于 MySQL(link),我也尝试按照给定链接和其他地方的建议使用 DATE_FORMAT()。
虽然现在当我在下面执行时:
select_single = {'date': "DATE_FORMAT(projectName_Modelname.created, '%%Y-%%m-%%d')"}
queryset.extra(select=select_single)
以下错误来了:
DatabaseError: (1054, "Unknown column 'projectName_Modelname.created' in 'field list'")
“created”是应用程序“projectName”的 Django 模型“Modelname”中的 Datetime 字段
当我将projectName_Modelname.created 替换为NOW() 时进行调试,不会出现错误。我也试过 Modelname.created 而不是 projectName_Modelname.created 虽然没有任何好处?
注意:我使用的是 Django1.5.5
【问题讨论】:
-
Django 1.5.5 已经过时多年了。几乎没有人记得现在如何使用额外的,最后但并非最不重要的一点是,始终尝试在本地和生产中使用相同的 RDBMS 以避免完全此类问题
-
您能解释一下为什么要这样做吗?在 Python 或模板中格式化输出日期要简单得多。
-
@e4c5 这是关于我正在维护的一个项目,并且请求进行一些修改。
-
@DanielRoseman 如果我无法修改这个,我最终会重构整个部分
标签: mysql django django-queryset