I have a question about querying embedded and array fields in django.
This is my models.py file:
from djongo import models
class detalji_igrica(models.Model):
pegi_rejting = models.IntegerField()
izdavac = models.CharField(max_length=64)
zanr = models.CharField(max_length=32)
datum_izlaska = models.CharField(max_length=32)
class Meta:
abstract = True
class komentari(models.Model):
id_korisnika = models.IntegerField()
komentar_naslov = models.CharField(max_length=64)
komentar = models.TextField()
datum_komentara = models.CharField(max_length=32)
rejting_korisnika = models.FloatField()
class Meta:
abstract = True
class Igrica(models.Model):
sifra_artikla = models.IntegerField()
naziv = models.CharField(max_length=32)
cena = models.FloatField()
konzola = models.CharField(max_length=32)
slika = models.CharField(max_length=64)
opis = models.TextField()
rejting = models.FloatField()
vrsta = models.CharField(max_length=32)
detalji_igrica = models.EmbeddedField(
model_container = detalji_igrica
)
komentari = models.ArrayField(
model_container = komentari
)
Here is my views.py file:
@api_view(['GET'])
def najjeftinije_prvo(request):
igrice = Igrica.objects.get(detalji_igrica__pegi_rejting = 18)
if request.method == 'GET':
igrica_serializer = IgricaSerializer(igrice, many=True)
return JsonResponse(igrica_serializer.data, safe=False)
And here is serializers.py:
class IgricaSerializer(serializers.ModelSerializer):
class Meta:
model = Igrica
fields = (
'id',
'sifra_artikla',
'naziv',
'cena',
'konzola',
'slika',
'opis',
'rejting',
'vrsta',
'detalji_igrica',
'komentari'
)
As you can see it has one embedded and one array field imported from djongo models. Now when I want to search for all games for example that have in detalji_igrica a field pegi_rejting = 18, this is the message I get:
FieldError at /api/igrice/najjeftinije Unsupported lookup 'pegi_rejting' for EmbeddedField or join on the field not permitted.
Similar message for Array field:
FieldError at /api/igrice/najjeftinije Unsupported lookup 'id_korisnika' for ArrayField or join on the field not permitted.
I would really appreciate the help!