使用Django中Google Sheets集成处理延期请求的库
项目描述
mitol-django-google-sheets-deferrals
这是开源学习Django Google Sheets库,用于通过Google Sheets处理延期请求
设置
在您开始设置此库之前,请确保首先设置了 mitol-django-google-sheets
。请按照此处的说明进行操作。
安装好 mitol-django-google-sheets
后,
pip install mitol-django-google-sheets-deferrals
在 settings.py
INSTALLED_APPS = [
...
"mitol.google_sheets_deferrals.apps.GoogleSheetsDeferralsApp",
]
MITOL_GOOGLE_SHEETS_DEFERRALS_PLUGINS = [
"ecommerce.plugins.DeferralPlugin"
]
在 ecommerce/plugins.py
from mitol.google_sheets_deferrals.hooks import hookimpl
class DeferralPlugin:
@hookimpl
def deferrals_process_request(deferral_request: DeferralRequestRow) -> DeferralResult:
# TODO: look up the user/enrollment
# TODO: unenroll user from and enroll to
创建您的Google Sheets文件夹
文件夹的结构应如下所示
- 包含具有“延期表格响应”和“延期”表格的电子表格,这些表格正在处理。
- 请求表格
向开发者请求一个模板文件夹以复制此结构。
将设置添加到您的应用程序中
在您的 .env 文件中设置 MITOL_GOOGLE_SHEETS_DEFERRALS_REQUEST_WORKSHEET_ID
。这是必需的。
某些设置具有默认值,您可能需要根据您的表格进行更新。
设置说明(除 mitol-django-google-sheets
中描述的设置外)
-
MITOL_GOOGLE_SHEETS_DEFERRALS_REQUEST_WORKSHEET_ID
在入学更改电子表格中包含退款和延期表格的ID。这些可以通过打开电子表格,选择“退款”或“延期”工作表,并复制URL中的
gid
值来找到。示例:
https://docs.google.com/spreadsheets/d/<MITOL_GOOGLE_SHEETS_ENROLLMENT_CHANGE_SHEET_ID>/edit#gid=<MITOL_GOOGLE_SHEETS_DEFERRALS_REQUEST_WORKSHEET_ID>
-
MITOL_GOOGLE_SHEETS_DEFERRALS_PROCESSOR_COL
包含处理行的用户的延期更改表格列的零索引
-
MITOL_GOOGLE_SHEETS_DEFERRALS_COMPLETED_DATE_COL
包含行完成日期的延迟变更表列的零基索引
-
MITOL_GOOGLE_SHEETS_DEFERRALS_ERROR_COL
包含行处理错误消息的延迟变更表列的零基索引
-
MITOL_GOOGLE_SHEETS_DEFERRALS_SKIP_ROW_COL
指示是否应跳过行的延迟变更表列的零基索引
-
MITOL_GOOGLE_SHEETS_DEFERRALS_FIRST_ROW
脚本应处理延迟请求工作表中的数据的第一行(如工作表中所示)
用法
要处理您的具有延迟请求的Google表格,只需添加
deferral_request_handler = DeferralRequestHandler()
results = deferral_request_handler.process_sheet()
以下是我们在当前获取Google Sheets延迟处理的主要两种方式
- 运行管理命令。例如:
./manage.py process_deferral_requests -i "<spreadsheet id>"
- 设置计划任务celery。例如
from mitol.google_sheets_deferrals.api import DeferralRequestHandler
from main.celery import app
@app.task
def process_deferral_requests():
"""
Task to process deferral requests from Google sheets
"""
deferral_request_handler = DeferralRequestHandler()
if not deferral_request_handler.is_configured():
log.warning("MITOL_GOOGLE_SHEETS_* are not set")
return
deferral_request_handler.process_sheet()
开发人员设置
对于本地开发和测试,请按照以下指示操作 开发人员设置
这里.
项目详情
哈希 对于 mitol-django-google-sheets-deferrals-2023.12.19.tar.gz
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 26225aca252f3967b7429fee74089e4658ab539f64b168d07b221b9e74fdc3e7 |
|
MD5 | f464e00c1479110a09bb3003dfc0780b |
|
BLAKE2b-256 | e410c6dbc9312254961032b89d19a6c7da191baefef1521fedf94864b4c88bdf |
哈希 对于 mitol_django_google_sheets_deferrals-2023.12.19-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c41a7f607f555eecf145f9187a19d0c93340d990d2cb8d13e0718270737c4828 |
|
MD5 | 16e9733767e7de40de40a17b05c4b71a |
|
BLAKE2b-256 | eab1e198857613ebebd72774eaf95eec379182579b9b662a40ab07cde9d39b62 |