【问题标题】:Get the object name in django admin在 django admin 中获取对象名称
【发布时间】:2021-09-14 13:42:17
【问题描述】:

嘿嘿!

我想在我的管理区域中有一个营业额类别,并且在那里我有一个带有货币的字段。这是一个带有预先给定货币的下拉字段。

我的问题是,显示的不是实际货币而是它们的 ID。 (如对象 123)。

有谁知道如何为内联解决这个问题?

# models.py

class Currency(models.Model):
    code = models.CharField(max_length=3, unique=True)
    currency = models.CharField(max_length=150, unique=True)


class Turnover(models.Model):
    currency = models.ForeignKey(Currency, on_delete=models.PROTECT)

# admin.py

class TurnoverInline(admin.TabularInline):
    model = Turnover
    extra = 1
    classes = ["collapse"]


class SomeAdmin(admin.ModelAdmin):
    form = SomeForm
    save_on_top = True

    inlines = [
        TurnoverInline
    ]

对于类似的问题,我创建了 admin.ModelAdmins 并在模型中集成了 code_str(self) 和 str(self) 方法。但这些不是内联,而是在 SomeForm/SomeAdmin 中作为字段/自动完成字段。

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    您可以在Currency 模型中使用__str__

    class Currency(models.Model):
        code = models.CharField(max_length=3, unique=True)
        currency = models.CharField(max_length=150, unique=True)
        
        def __str__(self):
            return f'{self.code} - {self.currency}'
    

    然后下拉菜单应显示此格式,而不是对象和 ID。

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多