视图中有多个错误,请编辑模型的列表



我正在尝试查看和编辑我的客户模型-

我所做的是当你第一次打开服务器时,客户列表会以链接的形式打开。正如我所说的那样,假设客户1。

只要我做出更改并按下保存按钮,表格就会显示为预填好的,这会给我错误-

Page not found (404)
Request Method: POST
Request URL:    http://127.0.0.1:8000/marketing/editcustomer/2250a9b1-5d25-4bce-b426-e3a4abb45abb/POST

我也有后退按钮——我也会在按下后退按钮后出现同样的错误!

然后,如果我回到customerlist(seecustomer),再次点击同一个或任何其他客户,它会给我以下错误-

Manager isn't accessible via customer instances

有时它也会给出-

First argument to get_object_or_404() must be a Model, Manager, or QuerySet, not 'customer'.

my型号.py

class customer(models.Model):
customerid=models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
customername=models.CharField(max_length=1000)

我的观点.py

def editcustomer(request,customer_pk):
global customer
customer=get_object_or_404(customer,pk=customer_pk,user=request.user)
if request.method=='GET':
form=createcustomerform(instance=customer)
return render(request,'marketing/editcustomer.html',{'customer':customer,'form':form})
else:
try:
form=createcustomerform(request.POST,instance=customer)
form.save()
return redirect('seecustomer')
except ValueError:
return render(request,'marketing/editcustomer.html',{'customer':customer,'form':form,'error':'Incorrect entry'})

我的html表单代码-

<form action="POST" method="POST">
{% csrf_token %}
<div id="customername"> <span><label for="customername">Company Name</label></span>
<input type="text" id="customername" name="customername" placeholder="Enter Company's Full name" value="{{ customer.customername}}"> </div>
<button class="btn btn-primary btn-md" type="submit">Save</button>
<br>
<input type="button" class="btn btn-primary btn-md" value="Go Back" onclick="history.back(-1)" />
</form>

发生这种情况的原因是,在第一次调用get_object_or_404之后,customercustomer对象,而不再是类。

例如,您可以导入带有大写字母的模型:

from app.models importcustomer as Customer
def editcustomer(request,customer_pk):
customer=get_object_or_404(Customer,pk=customer_pk,user=request.user)
if request.method=='GET':
form=createcustomerform(instance=customer)
return render(request,'marketing/editcustomer.html',{'customer':customer,'form':form})
else:
try:
form=createcustomerform(request.POST,instance=customer)
form.save()
return redirect('seecustomer')
except ValueError:
return render(request,'marketing/editcustomer.html',{'customer':customer,'form':form,'error':'Incorrect entry'})

因此,在这里我们删除global部分,并使用别名Customer。话虽如此,我强烈建议使用PEP-8风格的指南,从而在PerlCase中编写类的名称,而不是在snake_case中编写类名称。在这种情况下,你可以简单地导入它:

from app.models importCustomer
def editcustomer(request,customer_pk):
customer=get_object_or_404(Customer,pk=customer_pk,user=request.user)
if request.method=='GET':
form=createcustomerform(instance=customer)
return render(request,'marketing/editcustomer.html',{'customer':customer,'form':form})
else:
try:
form=createcustomerform(request.POST,instance=customer)
form.save()
return redirect('seecustomer')
except ValueError:
return render(request,'marketing/editcustomer.html',{'customer':customer,'form':form,'error':'Incorrect entry'})

最新更新