Django管理员问题:正确显示list_display中的选项字段

时间:2011-06-13 09:05:13

标签: django django-admin

在我的django管理员中,我正在尝试配置自定义列显示:

我的模特:

class Batch(models.Model):
    WEIGHT_UNIT = (
        (1, 'G'),
        (1000, 'K'),
        (1000 * 100, 'Q'),
        (1000 * 1000, 'T')
    )

    batch_number = models.CharField(max_length=12, unique=True)
    available_quantity_value = models.DecimalField(max_digits=10, decimal_places=3)
    available_quantity_unit = models.IntegerField(choices=WEIGHT_UNIT)

我的模特管理员:

class BatchAdmin(forms.ModelAdmin):
    list_display = ('batch_number', 'available_quantity_value', 'available_quantity_unit')

如果我这样做,我的管理员在批次列表页面中有两列,第二列显示从WEIGHT_UNIT常量(K,G等)中获取的值

现在,我希望有一个单独的列,显示“10K”,“250G”等等。所以这是我的新模特管理员:

class BatchAdmin(forms.ModelAdmin):
    list_display = ('batch_number', 'get_available_quantity')

在我的模特中:

def get_available_quantity(self):
    return '%s%s' % (self.available_quantity_value, self.available_quantity_unit)
get_available_quantity.shirt_description = _('Available quantity')

但是我在专栏中得到的是“101000”,“2501”等等。我如何告诉django显示从选项中获取的值?

1 个答案:

答案 0 :(得分:3)