Как отобразить исправленный выпадающий в админке Django? - PullRequest
4 голосов
/ 17 июня 2010

Я бы хотел отобразить информацию о приоритете в выпадающем списке.В настоящее время я использую целочисленное поле для хранения приоритета, но я хотел бы отображать высокий / средний / низкий вместо того, чтобы позволить пользователю вводить приоритет.

Чтобы приблизиться к этому, используйте базу данных Приоритет, которая хранит 3 элемента: 1: высокий, 2: средний, 3: низкий, но это выглядит как избыточное убийство.

Любой более простой способбудет очень признателен!

Джейсон

Ответы [ 3 ]

11 голосов
/ 17 июня 2010

Вы можете указать варианты для поля http://www.djangoproject.com/documentation/models/choices/.

PRIORITY_CHOICES = ((1, 'High'),
                    (2, 'Medium'),
                    (3, 'Low'))

class MyModel(models.Model):
    priority = models.IntegerField(choices=PRIORITY_CHOICES)
4 голосов
/ 17 июня 2010

Вы можете написать свою модель так:

from django.db import models

class Priority(models.Model):
    PRIORITY_LOW = 3
    PRIORITY_MEDIUM = 2
    PRIORITY_HIGH = 1

    PRIORITY_CHOICES = (
        (PRIORITY_LOW, 'low'),
        (PRIORITY_MEDIUM, 'medium'),
        (PRIORITY_HIGH, 'high'),
    )

    priority = models.IntegerField(choices=PRIORITY_CHOICES)

Вы читаете больше из документации

2 голосов
/ 17 июня 2010

Вы должны иметь возможность добавить варианты к элементу модели

Итак:

class myModel(models.Model):
    mydata = models.CharField(max_length=4, choices= ((u'H', u'High',), (u'M', u'Medium'), (u'L', u'Low')))

Сохраняет H, M, L в БД, но представляет Высокий, Средний, Низкий. Администратор по умолчанию устанавливает поля с атрибутом choices на выпадающий селектор

...