我正在尝试使用户可以编辑存储在对象中的显示信息,但在管理员批准编辑之前,该编辑不会公开显示。这些编辑存储在管理员可以排序的队列中。例如:
class examplemodel(models.Model):
text = models.CharField()
此字符字段显示在模板上的某个位置,用户可以单击链接,让文本成为包含相同信息的表单,当表单提交时,该信息不会发送回数据库,而是发送到队列以在管理页面上获得批准。我现在能想到的唯一方法是创建一个 editRequest 对象,让我让表单创建一个不同的对象,然后有一些批准功能,如果获得批准,则会更新旧对象。在这种情况下,我如何将其绑定到管理页面?
我建议创建一个带有必填字段的新模型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.
为管理员创建列表视图,并返回要查看的新模型的所有行。
class ApprovalPendingUsersListView(ListView):
# template_name and context_object_name
def get_queryset(self):
return ApprovalPendingUsersModel.objects.all()
当管理员单击批准按钮时,BaseUserModel
详细信息替换为ApprovalPendingUsersModel
并从ApprovalPendingUsersModel
中删除该行。
使用 get_or_create 可避免在用户发出多个更新请求时创建许多ApprovalPendingUsersModel
行。