У меня есть модель, сделанная так
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, но все равно не будет работать