From 4af854271a6619ba848e364ca6db4a4711634796 Mon Sep 17 00:00:00 2001 From: Greg Taylor Date: Mon, 30 Mar 2009 00:37:24 +0000 Subject: [PATCH] Fix clearing attributes via @set. --- src/objects/models.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/objects/models.py b/src/objects/models.py index 7ea0bd60a..0184f3ac9 100755 --- a/src/objects/models.py +++ b/src/objects/models.py @@ -595,16 +595,22 @@ class Object(models.Model): if self.has_attribute(attribute): # Attribute already exists, update it. attrib_obj = Attribute.objects.filter(attr_object=self).filter(attr_name__iexact=attribute)[0] - attrib_obj.attr_value = new_value - attrib_obj.save() + if new_value.strip() == '': + # If you do something like @set me=SOMEATTR:, destroy the attrib. + attrib_obj.delete() + else: + # Otherwise, save over the existing attribute's value. + attrib_obj.attr_value = new_value + attrib_obj.save() else: - # Attribute object doesn't exist, create it. - new_attrib = Attribute() - new_attrib.attr_name = attribute - new_attrib.attr_value = new_value - new_attrib.attr_object = self - new_attrib.attr_hidden = False - new_attrib.save() + if new_value.strip() != '': + # Attribute object doesn't exist, create it. + new_attrib = Attribute() + new_attrib.attr_name = attribute + new_attrib.attr_value = new_value + new_attrib.attr_object = self + new_attrib.attr_hidden = False + new_attrib.save() def has_attribute(self, attribute): """