First i'm not an exeperienced developer in Django, i use Django 4.0.6 on windows 10 and python 3.8.9 in a virtual environment.
I need help with my query in Django:
first here's my model:
from django.db import models
class MyWords(models.Model):
WordText=models.CharField(max_length=1000, unique=True)
WordStatus=models.IntegerField()
WordType=models.CharField(max_length=30)
and i have this sqllite database table with the following entries as example:
db.sqlite3
MyWords Table:
WordText WordStatus WordType
Dog 0 Animal
Cat 1 Animal
Car 4 Object
Lion 1 Animal
Computer 4 Inanimate Object
Stone 5 Inanimate Object
Child 4 Human
What i want to do is to get this info back this way:
data == [
{'WordType':'Object', 'WordStatus':4,'WordText':'Car'},
{'WordType':'Animal', 'WordStatus':[0,1,1], 'WordText':'Dog','Cat','Lion'},
{'WordType':'Inanimate Object', 'WordStatus':[4,5], 'WordText':'Computer','Stone'},
{'WordType':'Human', 'WordStatus':4, 'WordText':'Human'}
]
Essentially i want to regroup/categorize the entries by WordType so i can access them more easily.
Is this possible in Django ORM? If yes, how?
I first thought using something like a values_list with WordType as argument followed by a distinct and annotate, but i'm stucked. Something like this:
data =MyWords.objects.all().values_list('WordType').distinct().annotate(WordStatus=?).annotate(WordText=?)
I don't know if it's correct because i don't know what to replace the question marks with. I don't know if i'm on the correct path. So can anyone guide me please?
N.B: I don't want to use raw Sql queries if possible, because the rest of the project only uses Django ORM, that's why i'm asking, else i would use simply raw Sql queries to do the work.