While adding user data in DB through a form I created I got this error integrity error at \add_emp and it says foreign key constraint failed I tried deleting dbsqlite3 files, migrations files, and pychache files but that did not work please tell me where I am wrong it's my first time getting this error.
enter image description here This is shown after submitting
This is the Models.py code
from django.db import models
# Create your models here.
class Department(models.Model):
name = models.CharField(max_length=100,null=True)
location = models.CharField(max_length=100)
def __str__(self):
return self.name
class Role(models.Model):
name = models.CharField(max_length=100, null=True)
def __str__(self):
return self.name
class Employee(models.Model):
first_name = models.CharField(max_length=100, null=False)
last_name = models.CharField(max_length=100,null=True)
dept = models.ForeignKey(Department, on_delete=models.CASCADE)
salary = models.IntegerField(default=0,null=True)
bonus = models.IntegerField(default=0,null=True)
role = models.ForeignKey(Role, on_delete=models.CASCADE)
phone = models.IntegerField(default=0,null=True)
hire_date = models.DateField(null=True)
def __str__(self):
return "%s %s %s" %(self.first_name, self.last_name, self.phone)
This is the views .py code
# Create your views here.
def index (request):
return render(request,"index.html")
def all_emp (request):
context={"emps":Employee.objects.all(),"roles":Role.objects.all(),"departments":Department.objects.all()}
return render(request,"all_emp.html",context)
def add_emp(request):
if request.method == 'POST':
first_name = request.POST['first_name']
last_name = request.POST['last_name']
salary = int(request.POST['salary'])
bonus = int(request.POST['bonus'])
phone = int(request.POST['phone'])
dept = int(request.POST['dept'])
role = int(request.POST['role'])
new_emp = Employee(first_name= first_name, last_name=last_name, salary=salary, bonus=bonus, phone=phone, dept_id=dept,role_id=role,hire_date = datetime.now())
new_emp.save()
return HttpResponse ("Employee added sucessfully")
elif request.method=='GET':
return render(request, 'add_emp.html')
else:
return HttpResponse("An Exception Occured! Employee Has Not Been Added")
def remove_emp (request):
return render(request,"remove_emp.html")
def filter_emp (request):
return render(request,"filter_emp.html")
This is Html Form.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add Employee</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>
<body>
<div class="container">
<h1>Add An Employee!</h1>
<hr>
<form action="/add_emp" method="post">
{% csrf_token %}
<label for="first_name">First Name</label>
<br>
<input type="text" id="first_name" name="first_name"><br>
<label for="last_name">Last Name</label>
<br>
<input type="text" id="last_name" name = "last_name"><br>
<label for="salary">Salary</label>
<br>
<input type="number" id="salary" name="salary"> <br>
<label for="dept">Department</label>
<br>
<input type="number" id="dept" name="dept" ><br>
<label for="role">Role</label>
<br>
<input type="number" id="role" name="role" ><br>
<label for="bonus">Bonus</label>
<br>
<input type="number" id="bonus" name="bonus" ><br>
<label for="phone">Phone Number</label><br>
<input type="number" id="phone" name="phone"><br>
<hr>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<!-- Option 2: Separate Popper and Bootstrap JS -->
<!--
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
-->
</body>