Kar*_*ran 17 python django json
我正在尝试使用Django中的ValuesQuerySet功能将查询返回的字段数限制为仅需要的字段数.我想将此数据集序列化为JSON对象但是,Django不断抛出错误.下面我已经包含了我的代码和我收到的错误:
objectList = ConventionCard.objects.values('fileName','id').filter(ownerUser = user)
data = serializers.serialize('json', objectList)
return HttpResponse(data, mimetype='application/javascript')
Run Code Online (Sandbox Code Playgroud)
错误:
Exception Type: AttributeError
Exception Value: 'dict' object has no attribute '_meta'
Exception Location: C:\Python27\lib\site-packages\django\core\serializers\base.py in serialize, line 41
Run Code Online (Sandbox Code Playgroud)
谢谢 !
Aar*_*ron 34
首先将ValuesQuerySet转换为列表:
query_set = ConventionCard.objects.values('fileName','id').filter(ownerUser = user)
list(query_set)
Run Code Online (Sandbox Code Playgroud)
values
按照ars的建议删除调用会导致管理器从表中提取所有列,而不是仅提取所需的两列.
ars*_*ars 14
尝试使用QuerySet 通过方法对值列表中的字段进行子集化serialize
:
from django.core import serializers
objectQuerySet = ConventionCard.objects.filter(ownerUser = user)
data = serializers.serialize('json', objectQuerySet, fields=('fileName','id'))
Run Code Online (Sandbox Code Playgroud)
7wo*_*ers 10
使用上述方法时,我继续得到一个dict
没有属性_meta
错误的对象list()
.但是我发现这个片段可以解决这个问题
def ValuesQuerySetToDict(vqs):
return [item for item in vqs]
# Usage
data = MyModel.objects.values('id','title','...','...')
data_dict = ValuesQuerySetToDict(data)
data_json = simplejson.dumps(data_dict)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19675 次 |
最近记录: |