如何在Django表单中显示自定义错误消息

时间:2019-07-18 23:59:59

标签: django error-handling

我希望我的模型表单在输入不正确的值时显示客户错误消息。例如:我有一个“引用”字段,该字段在模型中设置为唯一。当前,如果用户为该字段输入两次相同的值,我将得到一个完整的错误屏幕,该屏幕显示为“ 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)

您可以在模型中看到-我试图添加一条消息以供参考,但是它什么也没做。谢谢!

0 个答案:

没有答案