I have two models Parent, Child
class Parent(models.Model):
id = models.IntegerField(...)
class Child(models.Model)
id = models.IntegerField(...)
parent = models.ForeignKey(Parent, ...)
wanted = models.CharField(default="yes")
I have a queryset
parents = Parent.objects.all()
I want to annotate a char field to parents queryset which is based on Child model
get_status(obj):
# complex function which returns string based on child onjects
children = Child.objects.filter(parent_id = obj.id)
if children.count() == 1:
return 'some'
if children.count() == 2:
return 'thing'
I want something like this, How to send object to get_status() function.
queryset.annotate(status = Value(get_status(), output_field=CharField()))