Je suis nouveau à Django et j'ai quelques problèmes avec une relation ManyToMany. Je travaille sur une automatisation BLASTN et voici mes classes:Django ManyToManyField non présent dans Sqlite3
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()
Dans une vue, je veux accéder aux données de Annotation du reste du modèle via ce nombre à plusieurs champs, puis appliquer des filtres basés sur une forme. Mais quand je fais un syncdb
, le champ de la classe Blast disparaître « séquence »:
En Sqlite3:
.schema myApp_blast
CREATE TABLE "myApp_blast" (
"id" integer not null primary key,
"expectValue" integer not null
);
donc je ne peux pas charger des données dans ce tableau que je veux. Je ne comprends pas pourquoi ce champ disparaît lors de la syncdb. Comment puis-je faire pour lier la première classe aux autres (et ensuite pouvoir fusionner les données dans un modèle)?
Merci, votre remarque m'a aidé. Je pensais vraiment que le ManyToManyField était une colonne dans la base de données ... Merci Daniel! –