Antje,

Thanks very much for your help!

Regards

Chuck G. Madamombe
NAM: +264 81 842 1284
RSA: +27 78 208 7034
Twitter: @chuckygari
Skype: chuckygari
Facebook: Chucky Mada Madamombe
LinkedIn: Chucknorris Garikayi Madamombe

On Sun, 9 Feb 2020, 15:25 Antje Kazimiers <[email protected]> wrote:

> Hi Chuck,
>
> Status in your example is not a text field, but a Foreign Key, that means
> a reference to a record in another table Task_Status, you see that here:
>
>     Status = models.ForeignKey(Task_Status, on_delete=models.CASCADE)
>
>
> You need to filter on the attribute within Task_Status, which has the
> value 'In progress', probably the 'name' attribute:
>
> tasks = Task.objects.filter(Status__name='In progress')
>
>
> The error says it expects an id, which is the primary key of the
> Task_Status record the Task record is referring to.
>
>
> Hope that helps,
> Antje
>
> On 2/9/20 3:31 AM, Chuck G. Madamombe wrote:
>
> Hello,
>
> I want to filter data in the database to retrieve only those tasks with
> status='In progress'. I have used the filter queryset, but am getting an
> error. Please help.
>
> *Here is my view (Filter tasks by their status):*
>
> def tasks_in_progress(request):
>     tasks = Task.objects.filter(Status='In progress')
>     context = {'tasks': tasks}
>     #return render(request,"todoapp/show_task.html",{'tasks':tasks})    
> return render(request,"todoapp/tasks_in_progress.html", context)
>
>
> *The model.py*
>
> class Task(models.Model):
>     #Task_Title = models.ForeignKey(ToDoList, on_delete=models.CASCADE)    
> Task_Title = models.CharField(max_length=500)
>     Task_Description = models.CharField(max_length=500)
>     Priority = models.ForeignKey(Task_Priority, on_delete=models.CASCADE)
>     Date_Created = models.DateTimeField(auto_now_add=True)
>     Completion_Date = models.DateTimeField()
>     Assigned_To = models.ForeignKey(User, blank=True, null=True, 
> on_delete=models.SET_NULL)
>     Status = models.ForeignKey(Task_Status, on_delete=models.CASCADE)
>
>     def __str__(self):
>         return self.Task_Description
>
> *The error am getting is:*
>
> ValueError at /todoapp/tasks_in_progress
>
> Field 'id' expected a number but got 'In progress'.
>
> Request Method: GET
> Request URL: http://127.0.0.1:8000/todoapp/tasks_in_progress
> Django Version: 3.0.2
> Exception Type: ValueError
> Exception Value:
>
> Field 'id' expected a number but got 'In progress'.
>
> Exception Location: C:\Users\Chuck
> Madamombe\Desktop\djangoPROJECTS\lib\site-packages\django\db\models\fields\__init__.py
> in get_prep_value, line 1772
> Python Executable: C:\Users\Chuck
> Madamombe\Desktop\djangoPROJECTS\Scripts\python.exe
> Python Version: 3.7.1
> Python Path:
>
> ['C:\\Users\\Chuck Madamombe\\Desktop\\djangoPROJECTS',
>  'C:\\Users\\Chuck Madamombe\\Desktop\\djangoPROJECTS\\Scripts\\python37.zip',
>  'C:\\Users\\Chuck '
>  'Madamombe\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs',
>  'C:\\Users\\Chuck '
>  'Madamombe\\AppData\\Local\\Programs\\Python\\Python37-32\\lib',
>  'C:\\Users\\Chuck Madamombe\\AppData\\Local\\Programs\\Python\\Python37-32',
>  'C:\\Users\\Chuck Madamombe\\Desktop\\djangoPROJECTS',
>  'C:\\Users\\Chuck Madamombe\\Desktop\\djangoPROJECTS\\lib\\site-packages',
>  'C:\\Users\\Chuck '
>  
> 'Madamombe\\Desktop\\djangoPROJECTS\\lib\\site-packages\\setuptools-39.1.0-py3.7.egg']
>
> Server time: Sun, 9 Feb 2020 10:22:05 +0200
>
>
> But if I just retrieve all the records in the database, without filtering,
> its working without an error
>
>
>
> *My View to retrieve all the records in the database, without filtering.*
>
> def show_task(request):
>     tasks = Task.objects.all()
>     context = {'tasks': tasks}
>     #return render(request,"todoapp/show_task.html",{'tasks':tasks})    
> return render(request,"todoapp/show_task.html", context)
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/a13041e8-1c37-4722-bf64-4faa75dd56ff%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/a13041e8-1c37-4722-bf64-4faa75dd56ff%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/03679dec-cbd3-0890-4a10-afdff2336734%40gmail.com
> <https://groups.google.com/d/msgid/django-users/03679dec-cbd3-0890-4a10-afdff2336734%40gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAJaKOsfvXBu5xbmzmsHGmFA_i6F_%3D1Ei%2Bp0foHNiGhJcLMDEVQ%40mail.gmail.com.

Reply via email to