def tag_a_file(file_name, tag, new_tag): """Associates a file name with a tag""" if not new_tag: files_with_tag = (File .select() .join(FileTag) .join(Tag) .where(FileTag.tag_id == Tag.get(Tag.tag_name == tag.tag_name))) for f in files_with_tag: if file_name.file_name == f.file_name: return try: ft = FileTag(file_id=file_name, tag_id=tag) ft.save() except IntegrityError: return print "'%s' added to %s tags!" % (tag.tag_name, file_name.file_name)