def __init__(self, item): self.json = item item['item_category'] = item.pop('category', None) item['item_subcategory'] = item.pop('subcategory', None) self.form = ItemForm(item) if not self.form.is_valid(): raise RESTFormInvalidError(self.form) if 'extended_info' not in item: raise ValidationError('extended_info required for item!') ei_json = self.json['extended_info'] self.ei_forms = [] for key, value in ei_json.iteritems(): ei = { "key": key, "value": value } ei_form = ItemExtendedInfoForm(ei) self.ei_forms.append(ei_form) if not ei_form.is_valid(): raise RESTFormInvalidError(ei_form)
class ItemStash(object): """ This object handles the storing and validation of an Item """ def __init__(self, item): self.json = item item['item_category'] = item.pop('category', None) item['item_subcategory'] = item.pop('subcategory', None) self.form = ItemForm(item) if not self.form.is_valid(): raise RESTFormInvalidError(self.form) if 'extended_info' not in item: raise ValidationError('extended_info required for item!') ei_json = self.json['extended_info'] self.ei_forms = [] for key, value in ei_json.iteritems(): ei = { "key": key, "value": value } ei_form = ItemExtendedInfoForm(ei) self.ei_forms.append(ei_form) if not ei_form.is_valid(): raise RESTFormInvalidError(ei_form) def get_form(self): """Returns the ItemForm used to validate the item""" return self.form def get_ei_forms(self): """Returns the list containing this Item's EI forms""" return self.ei_forms def remove_ei_form(self, form): """Removes a given EI form from ei_forms.""" if form in self.ei_forms: self.ei_forms.remove(form) def get_json(self): return self.json def set_instance(self, instance): self.instance = instance self.form = ItemForm(self.json, instance=instance) def get_instance(self): return self.instance
def set_instance(self, instance): self.instance = instance self.form = ItemForm(self.json, instance=instance)