本文整理匯總了Python中concepts.models.ConceptVersion.diff方法的典型用法代碼示例。如果您正苦於以下問題:Python ConceptVersion.diff方法的具體用法?Python ConceptVersion.diff怎麽用?Python ConceptVersion.diff使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類concepts.models.ConceptVersion
的用法示例。
在下文中一共展示了ConceptVersion.diff方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: update_concept_version
# 需要導入模塊: from concepts.models import ConceptVersion [as 別名]
# 或者: from concepts.models.ConceptVersion import diff [as 別名]
def update_concept_version(self, concept_version, data):
""" Updates the concept, or skips if no diff. Ignores retired status. """
# Generate the diff
clone = concept_version.clone()
serializer = ConceptVersionUpdateSerializer(
clone, data=data, context={'request': MockRequest(self.user)})
if not serializer.is_valid():
raise IllegalInputException(
'Could not parse concept to update: %s.' % concept_version.mnemonic)
new_version = serializer.object
diffs = ConceptVersion.diff(concept_version, new_version)
# Update concept if different
if diffs:
if 'names' in diffs:
diffs['names'] = {'is': data.get('names')}
if 'descriptions' in diffs:
diffs['descriptions'] = {'is': data.get('descriptions')}
clone.update_comment = json.dumps(diffs)
if not self.test_mode:
serializer.save()
if not serializer.is_valid():
raise IllegalInputException(
'Could not persist update to concept: %s' % concept_version.mnemonic)
return ImportActionHelper.IMPORT_ACTION_UPDATE
# No diff, so do nothing
return ImportActionHelper.IMPORT_ACTION_NONE