def record_to_dict(self, obj): record = model_to_dict(obj, self._meta.fields, self._meta.exclude) for field_name in self.base_fields: if self._meta.fields and field_name not in self._meta.fields: continue if self._meta.exclude and field_name in self._meta.exclude: continue record[field_name] = self.base_fields[field_name].get_value(obj) return record
def read(self, request, pk=None): pk = request.GET.get('id', pk) if pk: obj = self._meta.model.objects.get(pk=pk) return self.record_to_dict(obj) qs, total = self._get_queryset(request, True) result = [] for row in qs: record = model_to_dict(row, self._meta.fields, self._meta.exclude) for field_name in self.base_fields: if self._meta.fields and field_name not in self._meta.fields: continue if self._meta.exclude and field_name in self._meta.exclude: continue record[field_name] = self.base_fields[field_name].get_value(row) result.append(record) return result, total