I have a model that can be represented by something like this.
class BackPack(models.Model):
person = models.ForeignKey(Person, db_index=True,
related_name='back_packs', on_delete=models.CASCADE)
candy = ArrayField(models.CharField(max_length=203, null=True))
I want to build a queryset that is all back packs associated with one person and then annotated with the first item in the candy arrayfield. I tried the following;
first_candy = BackPack.objects.filter(person__id=200)\
.annotate(first_candy=F('candy__0'))
first_candy = BackPack.objects.filter(person__id=200)\
.annotate(first_candy=ExpressionWrapper(F('candy__0'),
output_field=CharField()))
The output for first_candy includes every item in the arrayfield not just the first one.
Any help for the correct way of doing this is much appreciated.