Django first word of a char field
My model in django has a character field with maximum length 500 character. I'm working with a PostgreSQL database:
class Chat(models.Model): message = models.CharField(max_length=500) username = models.CharField(max_length=255) date = models.DateTimeField(auto_now_add=True) @property def first_word(self): return self.message.split(" ")
I'm interested to evaluate first word of each message and do some aggregation. First word of each message could vary in length thus I can't use Left, Right or Substr database functions:
queryset = Chat.objects.annotate(command=F("first_word")).values("command") .annotate(counts=Count("command")) .order_by("-counts")
Obviously my queryset is not working because I can't call model methods in database query. However is there a way I can do this by using some other database functions?