将Google Drive中的批量图像导入到Wagtail Admin
项目描述
wagtail-image-import
将图像从Google Drive导入到Wagtail Admin,包括识别潜在的重复项。
安装
将以下内容添加到您的设置文件中的INSTALLED_APPS
,位于wagtail.admin
之上
设置
Wagtail Image Import依赖于Google API,您需要先为项目启用这些API
-
导航到Google API库。选择您的Wagtail站点的项目,或者创建一个新的项目。
-
查找并启用Google Docs和Google Drive API。
-
查找并启用Google Picker API,并将其API密钥复制到设置
WAGTAIL_IMAGE_IMPORT_GOOGLE_PICKER_API_KEY
中。 -
在API控制台中打开凭据页面。
-
选择
创建凭据
,然后选择OAuth客户端ID
-
如果您尚未配置同意屏幕,您现在需要配置此屏幕。
-
在
Google API作用域
下,单击添加作用域
。 -
添加
../auth/documents.readonly
和../auth/drive.readonly
作用域。注意:添加这些敏感作用域意味着您需要将项目提交给Google进行验证,以避免使用期间的用户限制和警告页面。
-
将您的域添加到
授权域
。
-
-
对于
应用程序类型
,选择Web应用程序
。 -
在
授权JavaScript源
下,添加您的域。 -
在凭据页面中,单击您的客户端ID旁边的下载项以下载客户端密钥的JSON文件。
-
从该文件中复制文本,并使用它设置
WAGTAILIMAGEIMPORT_GOOGLE_OAUTH_CLIENT_SECRET
。
重复比较设置
Wagtail图像导入将尝试识别图像的最可能重复项,如果它之前已被导入。默认情况下,它将通过比较每个导入的唯一驱动ID以及标题来实现。如果您只需要这些,可以跳过本节,或者仅用它来调整默认体验。
如果您正在使用自定义图像模型,您还可以将wagtail_image_import.models.DuplicateFindingMixin
添加到您的自定义模型中,以提供更好的重复识别,暴露EXIF日期时间和md5哈希。以下是如何将其添加到一个非常基本的自定义图像模型的示例
from wagtail.images.models import Image, AbstractImage, AbstractRendition
from wagtail_image_import.models import DuplicateFindingMixin
class CustomImage(DuplicateFindingMixin, AbstractImage):
admin_form_fields = Image.admin_form_fields
class CustomRendition(AbstractRendition):
image = models.ForeignKey(
CustomImage, on_delete=models.CASCADE, related_name="renditions"
)
class Meta:
unique_together = (("image", "filter_spec", "focal_point_key"),)
如果您选择添加混入,并且有现有图像数据,您需要调用所有现有实例的save()
来填写新字段。这可以在Django shell中完成
from wagtail.images import get_image_model
for image in get_image_model().objects.all():
image.save()
为了调整重复查找过程,您可以使用WAGTAILIMAGEIMPORT_FIELD_MAPPING
和WAGTAILIMAGEIMPORT_FIELD_WEIGHTING
设置。
WAGTAILIMAGEIMPORT_FIELD_MAPPING
将Google Drive字段名称映射到数据库字段名称。默认情况下,它是
{
"id": "driveidmapping__drive_id",
"name": "title",
}
如果您添加了混入,使用
{
"id": "driveidmapping__drive_id",
"name": "title",
"imageMediaMetadata__time": "exif_datetime",
"md5Checksum": "md5_hash"
}
来映射新字段。(如果您有额外的自定义字段,完整的驱动器字段列表是:'id', 'name', 'thumbnailLink', 'fileExtension', 'md5Checksum', 'size', 'imageMediaMetadata__width', 'imageMediaMetadata__height', 'imageMediaMetadata__rotation', 'imageMediaMetadata__time'
,尽管并非所有字段都存在于每张图像中)
要调整字段权重 - 在查找最可能的重复项中的相对重要性 - 您可以设置WAGTAILIMAGEIMPORT_FIELD_WEIGHTING
,它将数据库字段映射到权重。默认值是
{
"driveidmapping__drive_id": 10,
"md5Checksum": 5,
"title": 2
}
所有未列出的字段都赋予权重1。
其他设置
WAGTAILIMAGEIMPORT_SET_DRIVE_PARENT_FUNCTION
:如果您想选择Google拾取器的起始文件夹,并防止导航到文件夹之外(请注意,由于拾取器选项的限制,这不会将搜索结果限制为该文件夹的子文件夹),则可以将此设置设置为字符串路径到函数。此函数必须接受请求对象,并返回父文件夹的字符串驱动器ID。
用法
对于超级用户或具有“导入”权限的用户(可以在Wagtail管理员组部分将此权限添加到组中),图像索引的“添加图像”按钮现在将是一个下拉菜单,带有额外的“从驱动器导入”选项。选择此选项可进入导入屏幕。
您可以选择文件夹(其所有直接图像子项将被导入 - 目前,子文件夹的子项被忽略)或图像。
选择后,Wagtail图像导入将找到潜在的重复项,如果找到重复项,则将您带到审查屏幕,您可以选择替换现有图像、保留两者或取消上传新图像。
确认后,将开始上传。随着图像导入完成,您将能够编辑它们的元数据。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分布
构建分布
wagtail_image_import-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b2ab180a87f8786b8d480882f5bff9624e1d620d5d425826531d35f6e4639c26 |
|
MD5 | 297b4c0030e3de53f24ee297558234f6 |
|
BLAKE2b-256 | 30c860c7f40b354ae0f363b1fbf7bb47d2c2934f98d8a6d9dcecc07bfbbb59c6 |
wagtail_image_import-0.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 701fc828575fbfba368ada987e9fc51ee37f932d0475bec49d1f441994523290 |
|
MD5 | c6206f7660d3a3460d32c77c20fa888d |
|
BLAKE2b-256 | 04060ac428eaa06e960644918c21f6dfd81193c653211b9eee046e9e7e5457a5 |