Я хочу, чтобы в поле формы не повторялись записи. Если я введу те же данные, которые уже хранятся в базе данных, появится сообщение об ошибке или они не будут сохранены. Пожалуйста, помогите мне, ребята. Я новичок в Django.

Файл Form.html

<form class="well form-horizontal" method="post" action="{% url 'manager_add' %}">
            {% csrf_token %}
              <fieldset>
                 <div class="form-group">
                    <label class="col-md-4 control-label">Manager Name</label>
                    <div class="col-md-6 inputGroupContainer">
                       <div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span><input id="fullName" name="mname" placeholder="Full Name" class="form-control" required="true" value="" type="text"></div>
                    </div>
                 </div>
                 <div class="form-group">
                    <label class="col-md-4 control-label">Select Department</label>
                    <div class="col-md-6 inputGroupContainer">
                       <div class="input-group">
                          <span class="input-group-addon" style="max-width: 100%;"><i class="glyphicon glyphicon-list"></i></span>
                          <select class="selectpicker form-control" name="dprtmnt">
                             <option>Department 1</option>
                             <option>Department 2</option>
                             <option>Department 3</option>
                             <option>Department 4</option>
                          </select>
                       </div>
                    </div>
                 </div>
                  <div class="form-group">
                    <label class="col-md-4 control-label">Email</label>
                    <div class="col-md-6 inputGroupContainer">
                       <div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span><input id="email" name="email" placeholder="Email" class="form-control" required="true" value="" type="text"></div>
                    </div>
                 </div>
                 <div class="form-group">
                    <label class="col-md-4 control-label">Contact</label>
                    <div class="col-md-6 inputGroupContainer">
                       <div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-earphone"></i></span><input id="phoneNumber" name="phone" placeholder="Phone Number" class="form-control" required="true" value="" type="text"></div>
                    </div>
                 </div>
                 <button>Submit</button>
              </fieldset>
           </form>

Файл Model.py

class Manager(models.Model):
    mname = models.CharField(max_length=20)
    dprtmnt = models.CharField(max_length=10)
    email = models.CharField(max_length=50)
    phone = models.CharField(max_length=20)

    def __str__(self):
        return self.mname

View.py Файл

def manager_add(request):
    print("Form is submitted successfully!")
    mname = request.POST.get("mname", False)
    dprtmnt = request.POST.get("dprtmnt", False)
    email = request.POST.get("email", False)
    phone = request.POST.get("phone", False)

    ManagerAdd = Manager(mname = mname, dprtmnt = dprtmnt, email = email, phone = phone, is_active=False) 
    ManagerAdd.save()

    return render(request,'manageradd.html')  
0
Abhishek Kumar 12 Ноя 2018 в 13:36

1 ответ

Лучший ответ

Вы можете использовать Manager.objects.get_or_create(), см. это часть документа.

Вы также можете просто проверить, существует ли уже запись в вашей базе данных:

try:
    Manager.objects.get(mname = mname, dprtmnt = dprtmnt, email = email, phone = phone)
    # Do things if manager exists
except:
    # Create your new manager
0
Cyrlop 1 Дек 2018 в 13:07