【发布时间】:2021-03-01 04:04:42
【问题描述】:
我一直在与 Django/Mysql 中的情况作斗争。
表中存在该列同时具有主键和外键。此列与中间表具有一对多关系。
这是与植物物种相关的状态列表。有些物种可以在不止一个州找到。
- 物种(表 1) 列:Species_id |物种名称
- Species_to_states(表 2)列:Species_id | State_id
- 状态(表 3)列:States_id、State_name
Models.py(以下代码)
class Listaflor(models.Model):
especie = models.OneToOneField(Flora2Estado, models.DO_NOTHING, primary_key=True)
class Flora2Estado(models.Model):
estado = models.OneToOneField(Estados, models.DO_NOTHING, primary_key=True)
especie = models.ForeignKey('Listaflor', models.DO_NOTHING)
class Estados(models.Model):
estado_id = models.AutoField(primary_key=True)
estado_nome = models.CharField(max_length=100, blank=True, null=True)
nome_abbr = models.CharField(max_length=2, blank=True, null=True)
criadoem = models.DateTimeField(db_column='criadoEm') # Field name made lowercase.
class Meta:
managed = False
db_table = 'estados'
verbose_name = "Estados"
verbose_name_plural = "Estado"
def str(self):
return self.estado_nome+ " (" + self.nome_abbr+")"
关键是在 django admin 中只显示一个对象(检查下图)。所以我想在一行中显示多个字段。
有人可以帮我吗?
非常感谢
class floAdmin(admin.ModelAdmin):
list_display = ('especie','familia','regiaopred','emailautor','aprovado','datacriado','especie_0')
fieldsets = (
('Editar:', {
'fields': (
'especie','familia','regiaopred','emailautor','aprovado','datacriado','especie_0'
#'pes_vinculo_tipo'
)
}),
)
就像下图一样,我想在 django admin 的一行中显示“迈阿密、纽约和缅因州”,例如。这可能吗?
【问题讨论】:
-
我很困惑......为什么你有
Listaflor.especie作为OneToOne字段到Flora2Estado并且还有Flora2Estado.especie作为ForeignKey到Listaflor?跨度> -
您能分享一下您的管理员模型吗?
-
@Chris 我只需要在 listaflor.especie 上设置 oneToMany 吗?
-
感谢大家的关注!
-
@Jay,我不确定您要完成什么。但是,是的,建立这两种关系是不寻常的。