我有以下的Django模型Django的ORM不空列返回無
class CalculatedResults(models.Model):
id = models.IntegerField(primary_key=True)
tmstamp = models.DateTimeField()
latitude = models.FloatField()
longitude = models.FloatField()
magnitude = models.FloatField()
origin_time = models.DateTimeField()
actioncode = models.IntegerField(db_column='actionCode', blank=True, null=True) # Field name made lowercase.
class Meta:
managed = False
db_table = 'calculated_results'
verbose_name = 'Calculated Result'
verbose_name_plural = 'Calculated Results'
和相關MySQL表爲:
CREATE TABLE IF NOT EXISTS `calculated_results` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tmstamp` timestamp(5) NOT NULL DEFAULT CURRENT_TIMESTAMP,
`latitude` double NOT NULL,
`longitude` double NOT NULL,
`magnitude` double NOT NULL DEFAULT '0',
`origin_time` timestamp(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000',
`actionCode` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `tmstamp_index` (`tmstamp`),
KEY `origin_time_index` (`origin_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=814 ;
當我嘗試檢索使用python manage.py shell
使用下面的代碼從表中數據,
form eew_main.models import CalculatedResults
a = CalculatedResults.objects.all().order_by('-id')[:1]
我得到None
爲tmstamp
和origin_time
但據我調查了這個問題,當我嘗試它與Django使用我得到了所有的值相同的mysql用戶mysql的下面的SQL查詢發送到MySQL
SELECT `calculated_results`.`id` , `calculated_results`.`tmstamp` , `calculated_results`.`latitude` , `calculated_results`.`longitude` , `calculated_results`.`magnitude` , `calculated_results`.`origin_time` , `calculated_results`.`actionCode`
FROM `calculated_results`
ORDER BY `calculated_results`.`id` DESC
LIMIT 1
。
所以請幫助我以某種方式找到一種方法來調查和解決這個問題。
謝謝!
它是否爲所有日期返回'None',或僅爲零日期''0000-00-00 00:00:00.00000''返回? – Alasdair
@Alasdair它爲所有值返回null,而不僅僅是零日期 – abyz
@abyz爲什麼此模型的管理狀態爲false?它禁止django爲此表創建遷移 [在模型中管理](https://docs.djangoproject.com/en/1.10/ref/models/options/) – shalbafzadeh