2017-04-03 55 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