2017-09-27 51 views
1

我有一個Test04模型,並給出ctimeuptime字段。使用列表(map(model_to_dict,queryset_list))不映射createtime和updatetime字段

class Test04(models.Model): 
    testTime = models.DateTimeField(null=True) 
    ctime = models.DateTimeField(auto_now_add=True) 
    uptime = models.DateTimeField(auto_now=True) 

但是,當我使用list(map(model_to_dict, queryset_list))方法將查詢集轉換字典,我找到的ctime和正常運行時間不轉換:

from django.forms.models import model_to_dict 

print (models.Test04.objects.all()) 


all =models.Test04.objects.all() 

print (all[0].ctime) # 2017-09-26 07:49:02.012489+00:00 

print (list(map(model_to_dict, all))) # [{u'id': 1, 'testTime': datetime.datetime(2017, 9, 26, 7, 49, 1, 973016, tzinfo=<UTC>)}, {u'id': 2, 'testTime': datetime.datetime(2017, 9, 26, 8, 3, 24, 665944, tzinfo=<UTC>)}, {u'id': 3, 'testTime': datetime.datetime(2017, 9, 26, 0, 12, 12, 683801, tzinfo=<UTC>)}, {u'id': 4, 'testTime': datetime.datetime(2017, 9, 26, 0, 12, 43, 2169, tzinfo=<UTC>)}, {u'id': 5, 'testTime': datetime.datetime(2017, 9, 26, 8, 13, 16, 164395, tzinfo=<UTC>)}, {u'id': 6, 'testTime': datetime.datetime(2017, 9, 26, 0, 14, 8, 812063, tzinfo=<UTC>)}, {u'id': 7, 'testTime': datetime.datetime(2017, 9, 26, 0, 15, 32, 945493, tzinfo=<UTC>)}] 

在最後一行的輸出,你看有沒有ctime和每個字典中的uptime

回答

2

不知道你爲什麼會這麼做。 Django包含一個queryset方法來返回字典:Test04.objects.values()

model_to_dict是指用於在形式,這就是爲什麼它的形式模塊中的發現轉換模型實例中使用的內部實用方法。自動填充的字段(如兩個日期時間)未包含在表單中,因爲沒有理由對其進行編輯。