【问题标题】:Extend wagtail page visibility and add subscription plans扩展鹡鸰页面可见性并添加订阅计划
【发布时间】:2020-06-24 16:11:38
【问题描述】:

我正在创建一个带有 wagtail 的网站,用户可以在其中决定购买订阅计划。

每个订阅都应允许访问网站上的页面。例如,“只有高级计划中的用户才能阅读新闻”。

订阅必须有“到期日”。

目前可以阻止特定组中的用户查看(可以作为订阅进行管理),但我不知道如何管理到期日期,这似乎不是一个特别优雅的解决方案对于我的问题。

我还没有找到任何可以创建具有 expiry_date 字段的自定义模型 user_group。

我想知道这种情况通常应该如何处理,以及是否可以在可见性部分添加另一个条目,例如:“私有,特定订阅中的用户可以访问”。

【问题讨论】:

    标签: django permissions subscription wagtail


    【解决方案1】:

    创建自己的中间件来检查订阅是否过期,如果订阅过期则将用户从组中删除:https://docs.djangoproject.com/en/3.0/topics/http/middleware/#writing-your-own-middleware

    【讨论】:

    • 感谢您的建议。您会将 expiry_date 字段放在哪里?您是否在为组和订阅想象两个不同的对象?在这种情况下,编辑器永远不应该使用标准的方式来设置页面可见性,而是应该进入“AdminModel”订阅......对吗?
    • 我认为您需要将 expiration_date 字段放在订阅模型上。 Group 模型内置于 Wagtail 中。您仍然可以在 Wagtail 管理员中设置页面的可见性。如果订阅过期,只需在中间件中从组中删除订阅者即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多