在水合物期间填充不同资源内容的TastyPie字段?

时间:2013-05-22 22:55:46

标签: django django-models tastypie

如何在hydrate进程中使用其他记录的内容最好地填充TastyPie资源中的字段?

我在资源中定义了以下hydrate函数来填充模型中的“meta”字段:

def hydrate_meta(self, bundle):
    '''
    This will popular the `meta` field with a snapshot of the employee record, if the `empid` is set.
    '''

    if bundle.data['visitor']['empid']:
        # split the employee resource so we can get to the actual empid number
        empid_split = bundle.data['visitor']['empid'].split('/')

        # query the employee record, the `-2` index is the actual empidinteger
        meta_values = Employee.objects.filter(empid= empid_split[-2]).values('division', 'program', 'subprogram', 'base_city', 'base_state', 'base_country', 'group_abbr')[0]
        for k, v in meta_values.iteritems():
            meta_values[k] = v.encode('utf8')
        bundle.data['meta'] = meta_values

    return bundle

这正是我想要它做的,但它肯定是凌乱的!

请注意,我将该字段的内容拉出并将对象形式的某些字段保存到“meta”字段。这是因为员工记录可能会随着时间的推移而发生变化,我希望在创建此记录时创建快照。

是否有更直接的方法可以引用并提取资源内容以分配给此“元”字段?

0 个答案:

没有答案