Почему значения не сохраняются в таблице, когда я нажал кнопку «Отправить»? - PullRequest
0 голосов
/ 23 мая 2019

Я создал форму для получения значения и размещения его в таблице. Но всякий раз, когда я нажимаю кнопку «Отправить», она не сохраняет и не выдает никакой ошибки. Она просто остается на самой странице.

Model.py
    class Employee(models.Model):
    ename=models.CharField(max_length=120)
    eaddress=models.CharField(max_length=120)
    eemail=models.CharField(max_length=120)
    ephone=models.CharField(max_length=120)
    emobile=models.CharField(max_length=120)
    eid=models.CharField(max_length=120)
    egender=models.CharField(max_length=120)
    ehire=models.DateTimeField()
    edob=models.DateTimeField()

class Meta:
    db_table="employee"
views.py
    def employee(request):
        emp=Employee.objects.all()
        return render(request,'employee.html',{'emp':emp}) 
    def addemployee(request):
        if request.method == 'POST':
            emp = EmployeeForm(request.POST)
            if emp.is_valid():
                try:
                    form.save()
                    return redirect(employee)
                except:
                    pass
        else:
            emp = EmployeeForm()
return render(request,'addemployee.html',{'emp':emp})


addemployee.html:
    <form method="POST" action="add_employee">  
        {% csrf_token %} 
          {{emp.ename}}
          {{emp.eemail}}
          {{emp.emobile}}
    <button type="submit">Submit</button>
    </form>

1 Ответ

0 голосов
/ 23 мая 2019

Вам необходимо отобразить ошибки формы в шаблоне. Поэтому обновите ваш вид и шаблон так:

def addemployee(request):
    emp = EmployeeForm(request.POST or None)
    if request.method == 'POST':
        if emp.is_valid():
            try:
                emp.save()
                return redirect(employee)
            except Exception as e:
                raise e  # for debug purpose now
    return render(request,'addemployee.html',{'emp':emp})


addemployee.html:
<form method="POST" action="add_employee">  
    {% csrf_token %}
      {{ emp.errors }}  // it will render form errors
      {{emp.ename}}
      {{emp.eemail}}
      {{emp.emobile}}
      <button type="submit">Submit</button>
</form>

Я предполагаю, что ваша форма не проверяется, потому что у вас есть много полей, таких как eid, egender и т. Д., Которые необходимы для сохранения ее в базе данных. Если вы используете Modelform, то вы можете использовать {{ emp.as_p }} в соответствии с документацией рендеринга формы для рендеринга формы вместо {{emp.ename}} {{emp.eemail}} {{emp.emobile}}.

...