Quick actions

cmd+k|ctrl+k

Navigation

Languages

Faal json

Snippet info

Language

Python

Visibility

public

Author

schroefdop

Created

2016-04-26T13:33:33Z

Updated

2016-04-26T13:33:33Z

def agreement_to_json(agreement_id):
    print('\033[93m{}\033[0m'.format(agreement_id))  # Yellow
    ma = MembershipAgreement.objects.prefetch_related(
        'company', 'service_set', 'paymentdetail', 'clientdata',
        'spacesdata', 'company__memberdetail_set', 'payment_set') \
        .get(id=agreement_id)

    ma_dict = model_to_dict(ma)
    base_json_dict = {'membershipagreement': {}}
    print('\033[92m{}\033[0m'.format(ma_dict))  # Green
    for related_name, relationship in ma._meta.fields_map.items():
        relation = getattr(ma, relationship.get_accessor_name())
        if isinstance(relation, Model):
            base_json_dict['membershipagreement'].update({
                related_name: model_to_dict(relation)})
        else:
            objects = relation.all()
            base_json_dict['membershipagreement'].update({
                related_name: [model_to_dict(instance) for instance in objects]})

    ma_dict.update(base_json_dict)
    data = json.dumps(base_json_dict, default=json_handler)
    print('\033[91m{}\033[0m'.format(data))  # Red
    return data
INFO