首页 > 解决方案 > Django 中的发布和“保存草稿”功能

问题描述

我正在开发一个带有 React 前端的 Django Rest Framework B2B 应用程序。数据来自 csv,然后分析仪表板在 React 中呈现。每个帐户(“用户”)都是一家公司——在公司内部,整个营销团队(比如说)都在使用该应用程序。每个公司帐户都有该公司独有的数据。该公司独有的仪表板首选项。管理员是代表公司具有编辑/管理员权限的公司(例如波音、耐克等)的经理/员工的人类用户。该“管理员”对仪表板首选项进行了一些更改,并希望“发布”这些更改,以便公司帐户的其他员工(营销团队的其他成员)可以查看更新的仪表板。但可能还没有,因此有“保存草稿”功能。

我不确定如何在 Django (DRF) 中以最符合行业标准的方式获得这两个功能 - 当我点击“发布”时,整个营销团队应该能够看到这些变化。(这是一个 B2B 应用程序)。但是当我保存草稿时,我应该能够(以管理员身份)查看更改,但不能查看营销团队的其他成员。我会很感激任何帮助。谢谢!

标签: reactjsdjangodjango-rest-frameworkpublish-subscribe

解决方案


您可以使用选择字段来管理模型的状态(在您的情况下为仪表板)

示例代码如下

模型.py

class Dasboard(models.Model):
    STATUS_CHOICES = (('draft', 'Save Draft'), ('published', 'Published'))
    status = models.Charfield(max_length=20, choices=STATUS_CHOICES)
    # Others models fields

视图.py

def dashboard(request):
    objects = None
    if request.user.is_admin:
        # The admin users can see draft and saved (all Dashboard objects)
        objects = Dashboard.objects.all()
    else:
        # Others users are seeing only published
        objects = Dashboard.objects.filter(status='published')
    return render(request, 'app_name/dashboard.html', {'objects': objects})

注意:这里我只使用了 Django过滤器功能来根据用户类型检索一些数据。但您也可以使用 Django权限进行更高级的处理。


推荐阅读