Django 如何限制在form.save()之前在表中插入重复值

Django 如何限制在form.save()之前在表中插入重复值,django,Django,我想限制在我的数据库中重复输入“企业名称”。因为我已经创建了一个表单,函数正在从模板中获取值,并且我正在将表单数据保存到数据库中,它工作正常,但在插入数据库之前,它不会检查重复条目。所以,我想要的是代码将检查“企业名称”是否已经存在于数据库中。如果数据与代码一起出现,则应给出消息,说明数据已与此名称一起出现,否则将保存数据 这是项目中的模型 我在视图中编写的函数 @login_required def supplier_add(request, template_name='SupplierDe

我想限制在我的数据库中重复输入“企业名称”。因为我已经创建了一个表单,函数正在从模板中获取值,并且我正在将表单数据保存到数据库中,它工作正常,但在插入数据库之前,它不会检查重复条目。所以,我想要的是代码将检查“企业名称”是否已经存在于数据库中。如果数据与代码一起出现,则应给出消息,说明数据已与此名称一起出现,否则将保存数据

这是项目中的模型 我在视图中编写的函数

@login_required
def supplier_add(request, template_name='SupplierDetails.html'):
    if request.method == 'POST':
        form = SupplierForm(request.POST)
        # print("abc")
        if form.is_valid():
            form.save()
            # return  HttpResponse("ok saved")
            return redirect('inventory_management:supplier_manage')
    else:
        form = SupplierForm()
        # print(form)
    # duplicates = SupplierModel.objects.values('business_name').annotate(name_count=Count('business_name')).filter(name_count__gt=1)
    # print(duplicates)
    # records = SupplierModel.objects.filter(business_name__in=[item['business_name'] for item in duplicates])
    return render(request, template_name, {'form': form})
模板

{% extends "base.html" %}

{% block content %}
{% load staticfiles %}
<!--<meta name="viewport" content="width=device-width, initial-scale=1">-->
<!--<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">-->
<!--<link rel="stylesheet" href="{% static '/css/w3.css' %}">-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
<div class="container">
    <div class="row">
        <section class="col-md-12">
            <h1 class="page-header">Add Supplier Details
                <small>&nbsp&nbsp&nbspHere you can add/edit basic info of Item supplier</small>
                </h1>

            <div class="row text-center">
                <div class="col-md-12">
                    <a class="btn btn-primary" href="{% url 'inventory_management:supplier_manage' %}">Manage Supplier</a>
                </div>
            </div>
            <hr>
            <!-- Table content -->
            <div class="row">
                <div class="form-group">
                    <form class="form-horizontal" method="post" enctype="multipart/form-data" >{% csrf_token %}
                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Mine Specific Details</font></legend>
                        <div class="form-group col-md-12">
                            <div class="col-md-12">
                                <div class="col-md-4">
                                    <label for="" class="" id="">Choose Mine:</label>
                                </div>
                                <div class="col-md-8">
                                    {{form.mine_id}}
                                </div>
                            </div>
                        </div>
                        </fieldset>
                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Business Details</font></legend>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_business_name" class="" id="">Business Name</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.business_name}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_business_website" class="" id="">Business Website</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.business_website}}
                                    </div>
                                </div>
                            </div>
                    </fieldset>

                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Contact Person</font></legend>
                             <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_name" class="" id="">Name<font color="red">*</font></label>
                                    </div>
                                    <div class="col-md-8">
                                       {{form.name}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="mobile_no" class="" id="">Mobile Number</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.mobile_no}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_email" class="" id="">Email</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.email}}
                                    </div>
                                </div>
                            </div>
                        </fieldset>
                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Billing Address</font></legend>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="pin" class="" id="">Pincode</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.pincode}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="address" class="" id="">Address</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.address}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="landmark" class="" id="">Landmark</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.landmark}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_area" class="" id="">Area</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.area}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_city" class="" id="">City</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.city}}
                                    </div>
                                </div>

                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_state" class="" id="">State</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.state}}
                                    </div>
                                </div>
                             <br/><br/> <br/><br/>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_map_location" class="" id="">Map Location</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.map_loc}}
                                    </div>
                                </div>
                            </div>
                        </fieldset>

                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Tax Details</font></legend>
                             <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_pan" class="" id="">PAN /TIN</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.pan}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_gstin" class="" id="">GSTIN</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.gstin}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_notes" class="" id="">Notes</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.notes}}
                                    </div>
                                </div>
                            </div>
                        </fieldset>

                        <div class="text-center">
                            <input type="submit" class="btn btn-primary" value="Submit"/>
                        </div>
                    </form>
                </div>
            </div><!--end Table content -->
        </section>
    </div>
</div>

<style>

    fieldset.scheduler-border {
    border: solid 1px #DDD !important;
    padding: 0 10px 10px 10px;
    border-bottom: none;
}

legend.scheduler-border {
    width: auto !important;
    border: none;
    font-size: 14px;
}
fieldset ul {list-style:none}

</style>
<script>

$(document).ready(function(){
        $("#id_mine_id").addClass('form-control');

});
$(function() {
    $( ".datepicker" ).datepicker({
      changeMonth: true,
      changeYear: true,
      yearRange: "1900:2012",
      // You can put more options here.

    });
  });


</script>

{% endblock %}
{%extends“base.html”%}
{%block content%}
{%load staticfiles%}
添加供应商详细信息
   ;您可以添加/编辑物料供应商的基本信息

{%csrf_令牌%} 地雷具体细节 选择我的: {{form.mine_id} 业务详情 企业名称 {{form.business_name} 商业网站 {{form.business_网站} 联系人 名字* {{form.name} 手机号码 {{form.mobile{u no} 电子邮件 {{form.email} 帐单地址 枕形 {{form.pincode} 地址 {{form.address} 地标 {{form.landmark}} 地区 {{form.area}} 城市 {{form.city} 陈述 {{form.state}}




地图位置 {{form.map_loc}}
{% extends "base.html" %}

{% block content %}
{% load staticfiles %}
<!--<meta name="viewport" content="width=device-width, initial-scale=1">-->
<!--<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">-->
<!--<link rel="stylesheet" href="{% static '/css/w3.css' %}">-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
<div class="container">
    <div class="row">
        <section class="col-md-12">
            <h1 class="page-header">Add Supplier Details
                <small>&nbsp&nbsp&nbspHere you can add/edit basic info of Item supplier</small>
                </h1>

            <div class="row text-center">
                <div class="col-md-12">
                    <a class="btn btn-primary" href="{% url 'inventory_management:supplier_manage' %}">Manage Supplier</a>
                </div>
            </div>
            <hr>
            <!-- Table content -->
            <div class="row">
                <div class="form-group">
                    <form class="form-horizontal" method="post" enctype="multipart/form-data" >{% csrf_token %}
                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Mine Specific Details</font></legend>
                        <div class="form-group col-md-12">
                            <div class="col-md-12">
                                <div class="col-md-4">
                                    <label for="" class="" id="">Choose Mine:</label>
                                </div>
                                <div class="col-md-8">
                                    {{form.mine_id}}
                                </div>
                            </div>
                        </div>
                        </fieldset>
                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Business Details</font></legend>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_business_name" class="" id="">Business Name</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.business_name}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_business_website" class="" id="">Business Website</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.business_website}}
                                    </div>
                                </div>
                            </div>
                    </fieldset>

                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Contact Person</font></legend>
                             <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_name" class="" id="">Name<font color="red">*</font></label>
                                    </div>
                                    <div class="col-md-8">
                                       {{form.name}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="mobile_no" class="" id="">Mobile Number</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.mobile_no}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_email" class="" id="">Email</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.email}}
                                    </div>
                                </div>
                            </div>
                        </fieldset>
                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Billing Address</font></legend>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="pin" class="" id="">Pincode</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.pincode}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="address" class="" id="">Address</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.address}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="landmark" class="" id="">Landmark</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.landmark}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_area" class="" id="">Area</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.area}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_city" class="" id="">City</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.city}}
                                    </div>
                                </div>

                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_state" class="" id="">State</label>
                                    </div>
                                    <div class="col-md-8">
                                         {{form.state}}
                                    </div>
                                </div>
                             <br/><br/> <br/><br/>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_map_location" class="" id="">Map Location</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.map_loc}}
                                    </div>
                                </div>
                            </div>
                        </fieldset>

                        <fieldset class="scheduler-border">
                            <legend class="scheduler-border"><font color="blue">Tax Details</font></legend>
                             <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_pan" class="" id="">PAN /TIN</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.pan}}
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_gstin" class="" id="">GSTIN</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.gstin}}
                                    </div>
                                </div>
                            </div>
                            <div class="form-group col-md-12">
                                <div class="col-md-6">
                                    <div class="col-md-4">
                                        <label for="id_notes" class="" id="">Notes</label>
                                    </div>
                                    <div class="col-md-8">
                                        {{form.notes}}
                                    </div>
                                </div>
                            </div>
                        </fieldset>

                        <div class="text-center">
                            <input type="submit" class="btn btn-primary" value="Submit"/>
                        </div>
                    </form>
                </div>
            </div><!--end Table content -->
        </section>
    </div>
</div>

<style>

    fieldset.scheduler-border {
    border: solid 1px #DDD !important;
    padding: 0 10px 10px 10px;
    border-bottom: none;
}

legend.scheduler-border {
    width: auto !important;
    border: none;
    font-size: 14px;
}
fieldset ul {list-style:none}

</style>
<script>

$(document).ready(function(){
        $("#id_mine_id").addClass('form-control');

});
$(function() {
    $( ".datepicker" ).datepicker({
      changeMonth: true,
      changeYear: true,
      yearRange: "1900:2012",
      // You can put more options here.

    });
  });


</script>

{% endblock %}
if SupplierModel.objects.filter(business_name=form.cleaned_data['business_name'], ).exists():
    ...
business_name = models.CharField(max_length=100,null=True,blank=True, unique=True)