【发布时间】:2014-01-24 06:30:42
【问题描述】:
我有一个返回结果的查询 -
[{'trgjob_id': 22659, 'trgmst_id': 'Tidal - Default Email Abnormal', 'jobmst_id': 10081, 'trgjob_order': 1, 'trgjob_type': 0, 'trgjob_level': 0},
{'trgjob_id': 29054, 'trgmst_id': 'CADIS - DMS Email Abnormal ', 'jobmst_id': 10081, 'trgjob_order': 2, 'trgjob_type': 0, 'trgjob_level': 0},
{'trgjob_id': 29055, 'trgmst_id': 'CADIS - DMS Email Error ', 'jobmst_id': 10081, 'trgjob_order': 3, 'trgjob_type': 0, 'trgjob_level': 0}]
我想做的是在每个结果的开头添加模型名称 - trgjob(这里有 3 个结果)。我该怎么做呢?
把它放在所有结果的开头很容易我只是这样做 -
{'trgjob': trgjobstring.data}
在上面的例子中编辑我希望它看起来像这样 -
['trgjob':
{'trgjob_id': 22659, 'trgmst_id': 'Tidal - Default Email Abnormal', 'jobmst_id': 10081, 'trgjob_order': 1, 'trgjob_type': 0, 'trgjob_level': 0},
'trgjob':
{'trgjob_id': 29054, 'trgmst_id': 'CADIS - DMS Email Abnormal ', 'jobmst_id': 10081, 'trgjob_order': 2, 'trgjob_type': 0, 'trgjob_level': 0},
'trgjob':
{'trgjob_id': 29055, 'trgmst_id': 'CADIS - DMS Email Error ', 'jobmst_id': 10081, 'trgjob_order': 3, 'trgjob_type': 0, 'trgjob_level': 0}]
如果语法看起来不正确,我深表歉意。我实际上并不知道“应该”看起来如何,但我知道我想要每行开头的数据。
编辑-
我有一个自定义序列化程序,它正在将此数据转储到 XML 中,现在它正在以我不想要的方式对其进行格式化(无论它是否正确)。
<list-item>
<list-item>
<trgjob_id>245970</trgjob_id>
<trgmst_id>nope</trgmst_id>
<jobmst_id>34614</jobmst_id>
<trgjob_order>1</trgjob_order>
<trgjob_type>0</trgjob_type>
<trgjob_level>0</trgjob_level>
</list-item>
<list-item>
<trgjob_id>245969</trgjob_id>
<trgmst_id>blah</trgmst_id>
<jobmst_id>34614</jobmst_id>
<trgjob_order>2</trgjob_order>
<trgjob_type>0</trgjob_type>
<trgjob_level>0</trgjob_level>
</list-item>
</list-item>
所以 1. 我需要 list-item 成为我在原始问题中的“trgjob”。
- 我不想要 2 级列表项。
我希望 XML 看起来像这样 -
<trgjob>
<trgjob_id>245970</trgjob_id>
<trgmst_id>nope</trgmst_id>
<jobmst_id>34614</jobmst_id>
<trgjob_order>1</trgjob_order>
<trgjob_type>0</trgjob_type>
<trgjob_level>0</trgjob_level>
</trgjob>
<trgjob>
<trgjob_id>245969</trgjob_id>
<trgmst_id>blah</trgmst_id>
<jobmst_id>34614</jobmst_id>
<trgjob_order>2</trgjob_order>
<trgjob_type>0</trgjob_type>
<trgjob_level>0</trgjob_level>
</trgjob>
我最接近这一点的是从渲染器中删除“列表项”并更改视图,但我目前只知道如何将“trgjob”放在所有结果的开头而不是每个结果的开头一个。
【问题讨论】:
-
我找不到您需要这样做的理由。你能解释一下为什么吗?
-
当结果转到我的自定义序列化程序时,我需要它来分隔它,这样它就不会显示一个列表下的所有值,而是单独显示。我会更新我的问题。
-
您是在问如何从给定对象访问模型名称?
-
另外,使用
{'trgjob': [QuerySet of items]}而不是重复 3 次不是更有意义吗? -
看到您的编辑,您的问题更有意义。我可以建议您向我们展示序列化程序的代码(或您使用的工具),我们将帮助您了解如何以您想要的方式使用它?
标签: django