def get_tag(self, tag): """ Creates Tag if it doesn't exist, else return existing one :param tag: tag name :return: Tag db object """ try: return Tag.objects.get(name=tag) except Tag.DoesNotExist: tag = Tag(name=tag) tag.save() return tag
def get_or_create_tag(tag_name): """ Returns a Tag, which will be either created or retrieved from the database. """ tag_name = tag_name.strip() if tag_name == '': raise ValueError('Tag value cannot be empty') try: return Tag.objects.get(name=tag_name) except Tag.DoesNotExist: tag = Tag(name=tag_name) tag.save() return tag