我是 Django 新手,我对多对多关系有一些问题。我从事blastn自动化工作,这是我的课程:
class Annotation(models.Model):
sequence = models.IntegerField()
annotation = models.TextField()
start = models.IntegerField()
end = models.IntegerField()
class Blast(models.Model):
sequence = models.ManyToManyField(Annotation, through="AnnotBlast")
expectValue = models.IntegerField()
class AnnotBlast(models.Model):
id_blast = models.ForeignKey(Blast, to_field="id")
id_annot = models.ForeignKey(Annotation, to_field="id")
class Hit(models.Model):
id_hit = models.ForeignKey(Blast, to_field="id")
length = models.IntegerField()
evalue = models.IntegerField()
start_seq = models.IntegerField()
end_seq = models.IntegerField()
在一个视图中,我想通过这个多对多字段从模型的其余部分访问 Annotation 的数据,然后基于表单应用过滤器。但是当我做 a 时syncdb
,Blast 类的“序列”字段消失了:
在 Sqlite3 中:
.schema myApp_blast
CREATE TABLE "myApp_blast" (
"id" integer not null primary key,
"expectValue" integer not null
);
所以我无法根据需要在此表中加载数据。我不明白为什么这个字段会在同步数据库中消失。如何将第一类链接到其他类(然后能够在模板中合并数据)?