使用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 |