如何在一行中显示多个字段? (Django 管理员)

我一直在努力解决 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 中只显示一个对象(检查下图)。所以我想在一行中显示多个字段。

enter image description here

有人可以帮我吗?

太感谢了

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 的一行中显示“迈阿密、纽约和缅因州”,例如。那可能吗?

enter image description here

stack overflow How to show multiple fields within a row? (Django Admin)
原文答案

答案:

作者头像

我不明白您想在单元格中获取什么信息,但想建议您使用下一种方法:

class floAdmin(admin.ModelAdmin):

    list_display = ('especie', 'familia', 'regiaopred', 'emailautor', 'aprovado', 'datacriado', 'especie_0', 'custom_field', )
    fieldsets = (
        ('Editar:', {
            'fields': ('especie', 'familia', 'regiaopred', 'emailautor', 'aprovado', 'datacriado', 'especie_0', 'custom_field', )
            }),
        )

    def custom_field(self, obj):
        data_list_to_show = []  # get data based on obj
        return data_list_to_show 
作者头像

如果我真的理解)因为我有同样的问题。这帮助了我:

fieldsets=(        
       ("My Group",{"fields": (tuple(['field1','field1']),),}), 
    )

将这些字段包装在它们自己的元组中。有答案 Django admin display multiple fields on the same line