本文整理汇总了Python中addons.models.Addon.create_addon_from_upload_data方法的典型用法代码示例。如果您正苦于以下问题:Python Addon.create_addon_from_upload_data方法的具体用法?Python Addon.create_addon_from_upload_data怎么用?Python Addon.create_addon_from_upload_data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类addons.models.Addon
的用法示例。
在下文中一共展示了Addon.create_addon_from_upload_data方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: put
# 需要导入模块: from addons.models import Addon [as 别名]
# 或者: from addons.models.Addon import create_addon_from_upload_data [as 别名]
def put(self, request, addon, version_string):
if 'upload' in request.FILES:
filedata = request.FILES['upload']
else:
return Response(
{'error': _('Missing "upload" key in multipart file data.')},
status=status.HTTP_400_BAD_REQUEST)
try:
# Parse the file to get and validate package data with the addon.
pkg = parse_addon(filedata, addon)
if not acl.submission_allowed(request.user, pkg):
raise forms.ValidationError(
_(u'You cannot submit this type of add-ons'))
except forms.ValidationError as e:
return Response({'error': e.message},
status=status.HTTP_400_BAD_REQUEST)
if pkg['version'] != version_string:
return Response(
{'error': _('Version does not match install.rdf.')},
status=status.HTTP_400_BAD_REQUEST)
elif (addon is not None and
addon.versions.filter(
version=version_string,
files__status__in=amo.REVIEWED_STATUSES).exists()):
return Response({'error': _('Version already exists.')},
status=status.HTTP_409_CONFLICT)
if addon is None:
addon = Addon.create_addon_from_upload_data(
data=pkg, user=request.user, is_listed=False)
status_code = status.HTTP_201_CREATED
else:
status_code = status.HTTP_202_ACCEPTED
file_upload = handle_upload(
filedata=filedata, user=request.user, addon=addon, submit=True)
return Response(FileUploadSerializer(file_upload).data,
status=status_code)