Вопрос администратора Django: правильное отображение поля выбора в list_display - PullRequest
1 голос
/ 13 июня 2011

В моем администраторе 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 отображать значение, взятое из опции choices?

1 Ответ

3 голосов
/ 13 июня 2011
...