sum of methods in model based on field in model

from django.db import models
from django.db import connection
from django.urls import reverse
from biljart.models import Spelers
from handicap.models import Handicap
from django.core.validators import MaxValueValidator, MinValueValidator 
from django.utils.timezone import now



# Create your models here.



VRIJ = "V"
BAND = "B"
DRIEBAND = "3B"


SPELTYPE_CHOICES = (
    (VRIJ, "V"),
    (BAND, "B"),
    (DRIEBAND, "3B"),
)
import datetime
def current_year():
    return datetime.date.today().year


class Matchen(models.Model):
    idspeler1 =models.ForeignKey('biljart.Spelers', related_name='idspeler1',on_delete=models.CASCADE)
    idspeler2 = models.ForeignKey('biljart.Spelers', related_name='idspeler2',on_delete=models.CASCADE)
    datum = models.DateField(default='2023-01-01')
    speltype = models.CharField(max_length=2,choices=SPELTYPE_CHOICES,default='VRIJ')
    gespeeld1 = models.PositiveIntegerField(default=0)
    gespeeld2 = models.PositiveIntegerField(default=0)
    beurten = models.IntegerField(default=0,validators = [MaxValueValidator(25)])
    handicap_nbr = models.CharField(max_length=8,default='2023-1')
    def __unison__(self):
       pass
       #return f"{self.idspeler1}"
       
    def get_absolute_url(self):
        """Returns the URL to list."""
        print('idspeler1',str(self.idspeler1),'----',self.idspeler1_id)
        return reverse('indmatchen',args=[str(self.idspeler1_id)])
        
    def get_absolute_url2(self):
        """Returns the URL to list."""
        return reverse('indmatchen',args=[str(self.idspeler2_id)])
       
    @property
    def tespelen1(self):
      speltype = self.speltype
      match self.speltype:
        case "V": speltype = 'vrij'
        case 'B': speltype = 'band'
        case '3B': speltype='drieband'
      tespelen1=Handicap.objects.values_list(speltype,flat=True).filter(idspeler=self.idspeler1_id)
      return(tespelen1[0])
      
    
    @property
    def tespelen2(self):
      speltype = self.speltype
      match self.speltype:
        case "V": speltype = 'vrij'
        case 'B': speltype = 'band'
        case '3B': speltype='drieband'
      tespelen2=Handicap.objects.values_list(speltype,flat=True).filter(idspeler=self.idspeler2_id)
      return(tespelen2[0])
			
    @property
    def punten1(self):
      extra=(25-self.beurten)/10
      if self.gespeeld1 == self.tespelen1:
        win1=1
        punten1=10+1+extra
      else:
        punten1=(self.gespeeld1/self.tespelen1)*10
      return (round(punten1,2))
      
    @property
    def punten2(self):
      extra=(25-self.beurten)/10
      if self.gespeeld2 == self.tespelen2:
        win1=2
        punten2=10+1+extra
      else:
        punten2=(self.gespeeld2/self.tespelen2)*10
      return (round(punten2,2))
       
    class Meta:
      managed = True
      ordering = ['id']

I need to sum punten1 for idspeler1 + sum of punten2 for idspeler2 when idspeler1 == idspeler2.
I know how to do it in mysql and I did it with stored procedure, but I’m trying to do it in django but I have no clue how to start.

Can someone give me a starting point.

Thanks I found a solution myself.