如何在Django中实现编辑审批队列

时间:2017-04-03 19:35:08

标签: django django-models

我试图制作它,以便用户可以编辑存储在对象中的显示信息,但在管理员批准编辑之前,该编辑不会公开显示。这些编辑存储在管理员可以排序的队列中。 例如:

class examplemodel(models.Model):
    text = models.CharField()

此字段显示在用户可以单击链接的某个模板上,让文本成为包含相同信息的表单,在提交表单时,不会将信息发送回数据库,而是发送到队列中在管理页面上批准。我现在能想到的唯一方法就是创建一个editRequest对象,让我让表单创建一个不同的对象,然后有一些批准功能,如果批准则更新旧对象。在这种情况下,我如何将其与管理页面绑定?

1 个答案:

答案 0 :(得分:3)

我建议使用必填字段创建新模型ApprovalPendingUsers,并为该模型中的用户添加ForeignKey。您还可以添加created_timelast_modified_time字段进行排序。当用户提交编辑表单详细信息时,将使用用户ForeignKey将所有内容存储在新模型中。

#import User Model
from apps.users.models import BaseUserModel 

class ApprovalPendingUsersModel (Models.Model):
    created_by = models.ForeignKey(BaseUserModel)
    # Other fields.

为admin创建一个列表视图,并返回要查看的新模型的所有行。

class ApprovalPendingUsersListView(ListView):
    # template_name and context_object_name 

    def get_queryset(self):
        return ApprovalPendingUsersModel.objects.all()

当管理员点击批准按钮时,将BaseUserModel详细信息替换为ApprovalPendingUsersModel,并从ApprovalPendingUsersModel中删除该行。

当用户提供多个更新请求时,使用get_or_create可以避免创建多个ApprovalPendingUsersModel行。