十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Django Admin零代码发送邀请:django-invitations最易上手的邀请工作流实战

Django Admin零代码发送邀请:django-invitations最易上手的邀请工作流实战 Django Admin零代码发送邀请django-invitations最易上手的邀请工作流实战【免费下载链接】django-invitationsGeneric invitations app for Django项目地址: https://gitcode.com/gh_mirrors/dj/django-invitationsdjango-invitations是一款专为 Django 打造的通用邀请Invitation应用管理员只需在 Django Admin 后台填写一个邮箱并保存邀请邮件就会自动发出被邀请人点击邮件中的链接即可完成注册。它支持 Django 3.2–5.0 和 Python 3.8–3.12并可无缝对接 django-allauth 实现邀请制注册。本文带你从零开始用最少的代码搭建一套完整的邀请工作流。为什么选择 django-invitations做邀请注册功能自己实现往往要处理一堆细节邀请 key 的随机生成、有效期判断、重复邀请拦截、接受/过期状态流转……django-invitations 已经把这些全部封装好了零代码后台邀请应用安装完成后Django Admin 中自动出现 Invitations 管理入口新建一条记录即自动发送邮件4 种发送方式后台管理、前端表单、JSON 批量、程序内调用一套模型全搞定安全默认值邀请 key 为 64 位随机串默认 3 天过期接受/过期/无效都有清晰的状态页可扩展提供invite_url_sent、invite_accepted两个信号方便做埋点和业务联动多语言自带德语、法语、俄语、乌克兰语、葡语等翻译见 invitations/locale/ 目录。3 步完成安装最快配置方法⚡第 1 步安装应用python -m pip install django-invitations第 2 步注册应用并挂载 URL在settings.py的INSTALLED_APPS中加入invitations并在路由文件中包含邀请路由urlpatterns [ path(invitations/, include(invitations.urls, namespaceinvitations)), ] 如果同时使用 django-allauthinvitations必须排在allauth之后并额外设置ACCOUNT_ADAPTER invitations.models.InvitationsAdapter与INVITATIONS_ADAPTER ACCOUNT_ADAPTER即可启用邀请制 邮箱预填的完整流程详见 docs/installation.rst。第 3 步执行迁移python manage.py migrate迁移完成后数据库中就多了一张邀请记录表核心模型定义在 invitations/models.py包含email、key、inviter邀请人、sent、accepted等字段。Django Admin 零代码发送邀请核心工作流✨这是 django-invitations 最让人惊喜的地方——不需要写任何视图、表单或模板。应用内置了 invitations/admin.py 中的InvitationAdmin它随应用自动注册到后台。使用步骤登录 Django Admin在站点导航中找到Invitations分组点击添加邀请在表单中填写被邀请人邮箱可自动搜索选择邀请人点击保存——邮件立即发出列表页可看到邮箱、发送时间、是否已接受三列状态。邀请邮件的正文和标题由模板渲染默认内容在 invitations/templates/invitations/email/email_invite_message.txt 中想换措辞只需覆盖模板无需改动代码。被邀请人收到邮件后点击链接系统会进入接受流程逻辑位于 invitations/views.py 的AcceptInvite视图✅ 邀请有效 → 跳转注册页完成注册⏰ 邀请过期 → 提示过期并引导注册 已接受过 → 直接跳转登录页。4 种发送邀请的方式一套模型全覆盖方式适用场景说明Admin 后台人工逐个邀请零代码保存即发送前端表单站内用户自主邀请复用SendInvite视图表单类可通过INVITATIONS_INVITE_FORM替换JSON 批量后台脚本/前端批量导入开启ALLOW_JSON_INVITES后 POST 邮箱列表返回合法/非法分组程序内调用业务代码触发两行代码搞定见下程序方式同样简洁在 docs/usage.rst 中有官方示例Invitation get_invitation_model() invitation Invitation.create(emailtomexample.com) invitation.send_invitation(request)注意同一个邮箱同一时间只能有一条有效邀请重复创建会抛出AlreadyInvited等异常定义见 invitations/exceptions.py调用时做好捕获即可。3 个关键配置项控制过期、邀请制与跳转️所有配置均以INVITATIONS_前缀写在settings.py完整清单见 docs/configuration.rst配置项默认值作用INVITATIONS_INVITATION_EXPIRY3邀请邮件有效期天INVITATIONS_INVITATION_ONLYFalse设为True后仅凭邀请才能注册适合内测/白名单场景INVITATIONS_SIGNUP_REDIRECTaccount_signup接受邀请后的注册页 URL name按项目路由自定义定期清理过期邀请一条管理命令邀请记录会随时间积累django-invitations 自带管理命令 clear_expired_invitationspython manage.py clear_expired_invitations建议配合 cron 或任务调度每周执行一次保持邀请表清爽。用信号扩展你的邀请业务在 invitations/signals.py 中定义了两个信号invite_url_sent邀请链接发出时触发可用来记录日志、推送站内信invite_accepted邀请被接受时触发适合发放新手奖励、发送欢迎邮件。快速上手清单 ✅pip install django-invitations并注册到INSTALLED_APPS挂载invitations.urls路由执行migrate打开 Django Admin新建一条邀请保存即发信按需配置过期天数与INVITATIONS_INVITATION_ONLY定期运行clear_expired_invitations清理数据。至此一个安全、可配置、可扩展的 Django 邀请工作流就跑起来了。更多细节可以查阅项目自带的 docs/usage.rst 与 docs/configuration.rst以及 tests/ 目录下的完整测试用例作为参考。【免费下载链接】django-invitationsGeneric invitations app for Django项目地址: https://gitcode.com/gh_mirrors/dj/django-invitations创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表