如何在Django/Mysql中建立一对多关系?

如何在Django/Mysql中建立一对多关系?,django,foreign-keys,relational-database,Django,Foreign Keys,Relational Database,我试图了解如何在Django/Mysql中建立一对多关系 这里是models.py(代码如下) 我认为您想要做的是通过另一个名为Flora2Estado的类在Listaflor和Estados之间建立一个多个关系 我认为您想要做的是通过另一个名为Flora2Estado的类在Listaflor和Estados之间建立一个多个关系 嘿非常感谢您的回复。我使用了您建议的代码,但出现了一个错误::(admin.E109)“list_display[6]”的值不能是ManyToManyField。你知

我试图了解如何在Django/Mysql中建立一对多关系

这里是models.py(代码如下)


我认为您想要做的是通过另一个名为Flora2Estado的类在Listaflor和Estados之间建立一个多个关系


我认为您想要做的是通过另一个名为Flora2Estado的类在Listaflor和Estados之间建立一个多个关系


嘿非常感谢您的回复。我使用了您建议的代码,但出现了一个错误::(admin.E109)“list_display[6]”的值不能是ManyToManyField。你知道我该怎么修吗?再次感谢您,这是因为在admin.py中,您试图使用带有M2M字段的列表显示,这是不允许的。这另一个帖子可以帮你修复它,非常感谢你的帮助!成功了!你救了我!嘿非常感谢您的回复。我使用了您建议的代码,但出现了一个错误::(admin.E109)“list_display[6]”的值不能是ManyToManyField。你知道我该怎么修吗?再次感谢您,这是因为在admin.py中,您试图使用带有M2M字段的列表显示,这是不允许的。这另一个帖子可以帮你修复它,非常感谢你的帮助!成功了!你救了我!
class Flora2Estado(models.Model):
    estado = models.OneToOneField(Estados, models.DO_NOTHING, primary_key=True)
    especie = models.ForeignKey('Listaflor', models.DO_NOTHING)
    class Meta:
        managed = False
        db_table = 'flora2estado'
        unique_together = (('estado', 'especie'),)


class Listaflor(models.Model):
    especie = models.OneToOneField(Flora2Estado, models.DO_NOTHING, primary_key=True)
    familia = models.ForeignKey(Familia, models.DO_NOTHING, blank=True, null=True)
    nome = models.CharField(db_column='especie', max_length=255, blank=True, null=True)  # Field renamed because of name conflict.
    class Meta:
        managed = False
        db_table = 'listaflor'

class Estados(models.Model):
    estado_id = models.AutoField(primary_key=True)
    estado_nome = models.CharField(max_length=100, blank=True, null=True)
    class Meta:
        managed = False
        db_table = 'estados
class Estados(models.Model):
    estado_id = models.AutoField(primary_key=True)
    estado_nome = models.CharField(max_length=100, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'estados'


class Listaflor(models.Model):
    especie_id = models.AutoField(primary_key=True)
    nome = models.CharField(db_column='especie', max_length=255, blank=True, null=True)
    estados = models.ManyToManyField(Estados, through='Flora2Estado')

    class Meta:
        managed = False
        db_table = 'listaflor'


class Flora2Estado(models.Model):
    estado = models.ForeignKey(Estados, on_delete=models.DO_NOTHING)
    especie = models.ForeignKey(Listaflor, on_delete=models.DO_NOTHING)

    class Meta:
        managed = False
        db_table = 'flora2estado'
        unique_together = (('estado', 'especie'),)