首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用列表( map (model_to_dict,queryset_list))不映射创建时和更新时间字段

使用列表( map (model_to_dict,queryset_list))不映射创建时和更新时间字段
EN

Stack Overflow用户
提问于 2017-09-27 11:46:27
回答 1查看 365关注 0票数 2

我有一个Test04模型,我给出了ctimeuptime字段。

代码语言:javascript
复制
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和uptime不进行转换:

代码语言:javascript
复制
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>)}]

在最后一行的输出中,您可以看到每个字典中都没有ctimeuptime

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-27 11:49:48

不知道你为什么要这么做。Django包含一个queryset方法来返回dicts:Test04.objects.values()

model_to_dict是一种内部实用程序方法,用于转换在表单中使用的模型实例,这也是在forms模块中找到它的原因。自动填充的字段(就像您的两个日期时间一样)不包含在表单中,因为没有理由编辑它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46447064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档