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



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

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

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

我建议创建一个带有必填字段的新模型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.

为管理员创建列表视图,并返回要查看的新模型的所有行。

class ApprovalPendingUsersListView(ListView):
    # template_name and context_object_name 
    def get_queryset(self):
        return ApprovalPendingUsersModel.objects.all()

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

使用 get_or_create 可避免在用户发出多个更新请求时创建许多ApprovalPendingUsersModel行。

最新更新