如何将已删除的内容从现有表单显示到完全独立的 url,它在 django 中显示已删除的项目

How do I display the deleted content from an existing form to a completely separate url, Where it displays the deleted items in django

如何将已删除的内容从现有表单显示到完全独立的 URL,它在 django 中显示已删除的项目。我一直在尝试弄清楚如何创建一个单独的 table 来显示我已删除的所有项目

我不知道应该在我的功能键中输入什么

from django.shortcuts import render, redirect  
from employee.forms import EmployeeForm  
from employee.models import Employee  
# Create your views here.  
def emp(request):  
    if request.method == "POST":

        form = EmployeeForm(request.POST)  
        if form.is_valid():  
            try:  
                form.save()  
                return redirect('/show')  
            except:  
                pass  
    else:  
        form = EmployeeForm()  
    return render(request,'index.html',{'form':form})  
def show(request):  
    employees = Employee.objects.all()  
    return render(request,"show.html",{'employees':employees})  
def edit(request, id):  
    employee = Employee.objects.get(id=id)  
    return render(request,'edit.html', {'employee':employee})  
def update(request, id):  
    employee = Employee.objects.get(id=id)  
    form = EmployeeForm(request.POST, instance = employee)  
    if form.is_valid():  
        form.save()  
        return redirect("/show")  enter code here
    return render(request, 'edit.html', {'employee': employee})  
def destroy(request, id):  
    employee = Employee.objects.get(id=id)  
    employee.delete()
    return redirect("/show")

因此,如果您想显示所有已删除的员工,则不能这样做 employee.delete(),因为这会从基础数据库中删除记录。

而是考虑附加到 Employee 模型的标志(即布尔值)- 例如 "deleted" 具有默认值 False。进入 destroy 函数后,您只需执行

employee.deleted =True
employee.save()

并在您的 show 函数中执行以下操作:

Employee.objects.filter(deleted=False) 

在您单独的 URL 上,您希望显示所有已删除的员工

Employee.objects.filter(deleted=True) 

您也可以在那里使用 custom model managers