如何在 Django/Mysql 中建立一对多关系?
How to make a one to many relationship in Django/Mysql?
我想了解如何在 Django/Mysql?
中建立一对多关系
这里是models.py(代码如下)
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
我认为您想要做的是通过另一个名为 Flora2Estado 的 class 在 Listaflor 和 Estados 之间建立 Many2Many 关系。 Django M2M relation
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'),)
我想了解如何在 Django/Mysql?
中建立一对多关系这里是models.py(代码如下)
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
我认为您想要做的是通过另一个名为 Flora2Estado 的 class 在 Listaflor 和 Estados 之间建立 Many2Many 关系。 Django M2M relation
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'),)