在 Django 中发布和"Save Drafts"功能



我正在使用React前端开发Django Rest框架B2B应用程序。数据从csv输入,然后在React中呈现Analytics仪表板。每个账户("用户")都是一个公司——在一个公司内部,整个营销团队都在使用这个应用。每个公司帐户都有该公司独有的数据和该公司独有的仪表板首选项。管理员是代表公司拥有编辑/管理员权限的公司(例如波音、耐克等)的经理/雇员。,"admin"对仪表板首选项进行了一些更改,并希望"发布";更改,以便公司帐户的其他员工(营销团队的其他成员)可以查看更新后的仪表板。但也许还没有,因此出现了"拯救草案"。特性。

我不确定如何在Django (DRF)中以最行业标准的方式获得这两个特性——当我点击"发布"时,整个营销团队应该都能看到这些变化。(这是一个B2B应用程序)。但是当我保存草稿时,我应该能够看到修改(作为管理员),而不是营销团队的其他成员。我很感激任何帮助。谢谢你!

您可以使用一个选择字段来管理一个模型的状态(在您的例子中是仪表板)

示例代码如下

models.py

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

views.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的权限来进行更高级的处理。

最新更新