在 Django admin 中以多对多关系显示对象的 ID

Display the id of an object in many to many relation in Django admin

我的 Django 应用程序中有一个模型(变体价格),它与其他模型(变体)有很多对多的关系。在 Django Admin VariationPrice 下,可以看到其中包含许多 Variations 的 variations 字段。是否可以在 django admin 的多对多字段中显示变体 ID (Variation.id) 和变体名称?

class VariationPrice(models.Model):
    price = models.IntegerField()
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    variations = models.ManyToManyField(Variation, blank=True)

M2M 对象的名称由其 __str__() 方法呈现。因此,实现此目的的最简单方法是简单地将 ID 添加到 Variation 模型的 str 方法中:

class Variation(models.Model):
    ...
    def __str__(self):
        return f"{self.name}-{self.id}"