我试图制作它,以便用户可以编辑存储在对象中的显示信息,但在管理员批准编辑之前,该编辑不会公开显示。这些编辑存储在管理员可以排序的队列中。 例如:
class examplemodel(models.Model):
text = models.CharField()
此字段显示在用户可以单击链接的某个模板上,让文本成为包含相同信息的表单,在提交表单时,不会将信息发送回数据库,而是发送到队列中在管理页面上批准。我现在能想到的唯一方法就是创建一个editRequest对象,让我让表单创建一个不同的对象,然后有一些批准功能,如果批准则更新旧对象。在这种情况下,我如何将其与管理页面绑定?
答案 0 :(得分:3)
我建议使用必填字段创建新模型ApprovalPendingUsers
,并为该模型中的用户添加ForeignKey
。您还可以添加created_time
和last_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
行。