如何在django admin中显示固定下拉列表?

时间:2010-06-17 17:32:22

标签: django django-admin

我想在下拉列表中显示优先级信息。目前我使用整数字段来存储优先级,但我想显示高/中/低而不是让用户输入优先级。

一种近似的方法是使用一个优先级数据库,它存储3个元素,1:高,2:中等,3:低,但它看起来像是一种过度杀伤。

任何更简单的方法都会非常感激!

杰森

3 个答案:

答案 0 :(得分:11)

您可以为字段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)

答案 1 :(得分:4)

您可以像这样编写模型:

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)

您可以从documentation

中了解更多信息

答案 2 :(得分:2)

您应该能够为模型元素添加选项

所以:

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属性的字段默认为下拉选择器