2017-04-03 57 views
0

我试图让用户可以编辑存储在对象中的显示信息,但只有在管理员批准编辑之后才能公开显示该编辑信息。这些编辑存储在管理员可以排序的队列中。 例如:如何在Django中实现编辑批准队列

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

这charfield显示在模板的地方在那里,用户可以点击一个链接,让文字变得含有当表单提交了相同的信息形式,发信息不回数据库,但要在管理页面上批准一个队列。我现在想的唯一方法就是创建一个editRequest对象,让我可以让表单创建一个不同的对象,然后有一些批准功能,在批准时更新旧对象。在这种情况下,我将如何将其与管理页面绑定?

回答

2

我会建议创建一个新的模型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细节与ApprovalPendingUsersModelApprovalPendingUsersModel删除该行。

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

+0

谢谢!那我想我不会做的,只是想看看是否有一些django的功能为这个内置的某个地方 – Peter