本文整理汇总了Python中virtualfolder.models.VirtualFolder.is_browsable方法的典型用法代码示例。如果您正苦于以下问题:Python VirtualFolder.is_browsable方法的具体用法?Python VirtualFolder.is_browsable怎么用?Python VirtualFolder.is_browsable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类virtualfolder.models.VirtualFolder
的用法示例。
在下文中一共展示了VirtualFolder.is_browsable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: handle
# 需要导入模块: from virtualfolder.models import VirtualFolder [as 别名]
# 或者: from virtualfolder.models.VirtualFolder import is_browsable [as 别名]
def handle(self, *args, **options):
"""Add virtual folders from file."""
if not args:
raise CommandError("You forgot to provide the mandatory filename.")
try:
inputfile = open(args[0], "r")
vfolders = json.load(inputfile)
inputfile.close()
except IOError as e:
raise CommandError(e)
except ValueError as e:
raise CommandError("Please check if the JSON file is malformed. "
"Original error:\n%s" %e)
added_count = 0
updated_count = 0
errored_count = 0
for vfolder_item in vfolders:
vfolder_item['name'] = vfolder_item['name'].lower()
# Put all the files for each virtual folder as a list and save it
# as its filter rules.
try:
vfolder_item['filter_rules'] = ','.join(vfolder_item['filters']['files'])
except KeyError:
vfolder_item['filter_rules'] = ''
if 'filters' in vfolder_item:
del vfolder_item['filters']
# Now create or update the virtual folder.
try:
# Retrieve the virtual folder if it exists.
vfolder = VirtualFolder.objects.get(
name=vfolder_item['name'],
location=vfolder_item['location'],
)
except VirtualFolder.DoesNotExist:
# If the virtual folder doesn't exist yet then create it.
try:
vfolder = VirtualFolder(**vfolder_item)
vfolder.save()
except ValidationError as e:
errored_count += 1
logging.error(e.message)
else:
added_count += 1
else:
# Update the already existing virtual folder.
changed = False
if vfolder.filter_rules != vfolder_item['filter_rules']:
vfolder.filter_rules = vfolder_item['filter_rules']
changed = True
logging.info("Filter rules for virtual folder '%s' will "
"be changed.", vfolder.name)
if ('priority' in vfolder_item and
vfolder.priority != vfolder_item['priority']):
vfolder.priority = vfolder_item['priority']
changed = True
logging.info("Priority for virtual folder '%s' will be "
"changed to %f.", vfolder.name,
vfolder.priority)
if ('is_browsable' in vfolder_item and
vfolder.is_browsable != vfolder_item['is_browsable']):
vfolder.is_browsable = vfolder_item['is_browsable']
changed = True
logging.info("is_browsable status for virtual folder '%s' "
"will be changed.", vfolder.name)
if ('description' in vfolder_item and
vfolder.description.raw != vfolder_item['description']):
vfolder.description = vfolder_item['description']
changed = True
logging.info("Description for virtual folder '%s' will be "
"changed.", vfolder.name)
if changed:
try:
vfolder.save()
except ValidationError as e:
errored_count += 1
logging.error(e.message)
else:
updated_count += 1
logging.info("\nErrored: %d\nAdded: %d\nUpdated: %d\nUnchanged: %d",
errored_count, added_count, updated_count,
len(vfolders)-errored_count-added_count-updated_count)