Как остановить повторный вход в модель Django - PullRequest
0 голосов
/ 12 ноября 2018

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

Файл 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')  

1 Ответ

0 голосов
/ 01 декабря 2018

Вы можете использовать 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
...