我希望我的模型表单在输入不正确的值时显示客户错误消息。例如:我有一个“引用”字段,该字段在模型中设置为唯一。当前,如果用户为该字段输入两次相同的值,我将得到一个完整的错误屏幕,该屏幕显示为“ view unit.views.add_order没有返回HttpResponse对象。而是返回了None。”
相反,我希望该视图仅显示一条错误消息,并且该表单仍处于打开状态,并显示类似“该引用ID已经存在!”
任何人都可以指出我要实现这一目标的方向吗?
Forms.py
class CreateOrderForm(forms.ModelForm):
class Meta:
model = Orders
fields = ('reference', 'ultimate_consignee', 'ship_to'...)
Models.py
class Orders(models.Model):
reference = models.CharField(max_length=50, unique=True, error_messages={'unique':"This reference id has already been used"})
ultimate_consignee = models.ForeignKey(Customers, blank=True)
ship_to = models.CharField(max_length=500, blank=True)
Views.py
def add_order(request):
if request.method == "POST":
form = CreateOrderForm(request.POST)
#objectlist = Customers.objects.all()
if form.is_valid():
reference_id = form.cleaned_data.get('reference')
form.save()
return redirect('add_manifest', reference_id=reference_id)
else:
form = CreateOrderForm()
#form2 = CreateManifestForm()
objectlist = Customers.objects.all()
context = {
'form': form,
#'form2': form2,
'objectlist': objectlist,
}
return render(request, 'add_order.html', context)
您可以在模型中看到-我试图添加一条消息以供参考,但是它什么也没做。谢谢!