Wil*_*y G 6 python sqlite django django-models django-views
我正在尝试创建一个查询集,用于获取数据库中DATETIME的DateTimeField的值.
models.py中的类:
class ChangeMetrics(models.Model):
id = models.IntegerField(primary_key=True)
file_id = models.ForeignKey(File, db_column = 'file_id')
version_id = models.ForeignKey(Version, db_column = 'version_id')
function_id = models.ForeignKey(Function, blank=True, db_column = 'function_id')
date = models.DateTimeField(blank=True, null=True)
user = models.TextField(blank=True)
changed = models.IntegerField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
DB中的字段:
date DATETIME
Run Code Online (Sandbox Code Playgroud)
元组填充在数据库中,直接在DB上运行SQL查询工作正常.
这是我目前在Django中使用的查询集:
queryset = ChangeMetrics.objects.filter(~Q(changed=None), ~Q(date=None), ~Q(version_id=None))
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一个原始查询以及使用exclude()的查询版本,但是仍然为日期返回None.
我通过for循环访问查询集中的条目,只需通过for循环中的entry.date访问日期.
编辑:Django版本1.6.5我也尝试通过Django shell获取值,但没有成功.
关于什么可能出错的任何想法?
不确定您是否能够解决这个问题,但我刚刚遇到了这个问题并且能够解决它。
因此,Django 迁移在数据库中将列创建为 datetime(6) 而不是 datetime。这导致 Django 模型无法实例化 Datetime 对象。
ALTER TABLE `my_table`
MODIFY COLUMN `created` datetime NOT NULL
Run Code Online (Sandbox Code Playgroud)
运行后如果解决了我的问题。也许在你的情况下你可以尝试修改为 datetime(6) 。
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |