django FloatField - как мне получить значение - PullRequest
0 голосов
/ 10 июля 2019

У меня есть модель, сделанная так

class SnpsPfm(models.Model):
snpid = models.ForeignKey(Snps, models.DO_NOTHING, db_column='SNPID', primary_key=True)  # Field name made lowercase.
pfmid = models.ForeignKey(Pfm, models.DO_NOTHING, db_column='PFMID')  # Field name made lowercase.
start = models.PositiveIntegerField()
strand = models.PositiveIntegerField()
type = models.CharField(max_length=8)
scoreref = models.FloatField(db_column='scoreRef', blank=True, null=True)  # Field name made lowercase.
scorealt = models.FloatField(db_column='scoreALT', blank=True, null=True)  # Field name made lowercase.

class Meta:
    managed = False
    db_table = 'SNPs_PFM'
    unique_together = (('snpid', 'pfmid', 'start', 'strand'),)

def __str__(self):
    return str(self.snpid + self.pfmid + self.start + self.strand)

И мне нужно сделать эту операцию

a = SnpsPfm.objects.filter(snpid=qset[0])
score = a[k].scorealt - a[k].scoreref

Проблема в том, что это не позволит мне сделать это, давая мне

could not convert string to float: 'ARNTL.SwissRegulon

Я пытался разыграть их как float, но это явно не решение. Я даже пытался добавить

def __float__(self):
    return float(self.scoreref)

в SnpsPfm, но все равно не будет работать

...