Reputation: 9
my model is
class Employee(models.Model):
first_name=models.CharField(max_length=100, null=False)
last_name=models.CharField(max_length=100)
dept = models.ForeignKey(Department,on_delete=models.CASCADE)
salary = models.IntegerField(default=0)
bonus = models.IntegerField(default=0)
role = models.ForeignKey(Role, on_delete=models.CASCADE)
phone = models.IntegerField(default=0,max_length=12)
hire_date = models.DateField(default=datetime.now()
and my view is as
def fil_emp(request):
if request.method == "POST":
# print("post received")
# print(request.POST)
name = request.POST['first_name']
d = request.POST['department']
role = request.POST['role']
emps = Employee.objects.all()
if name:
emps = emps.filter(Q(first_name__icontains== name) | Q(last_name__icontains == d))
if d:
pass
if role:
pass
return render(request, 'fil_emp.html')
but at this time i received error like ** "first_name__icontains" is not defined **
Upvotes: 0
Views: 75
Reputation: 190
You are given ==
to check the condition. Change the following line like this:
emps = emps.filter(Q(first_name__icontains = name) | Q(last_name__icontains = d))
For more, you can see the official doc of Django: https://docs.djangoproject.com/en/4.0/ref/models/querysets/#django.db.models.Q
Upvotes: 1