我想在下拉菜單中顯示優先級信息。目前我正在使用整數字段來存儲優先級,但我想顯示高/中/低,而不是讓用戶輸入優先級。如何在django admin中顯示固定的下拉菜單?
一種近似的方法是使用優先級數據庫,該數據庫存儲3個元素,1:高,2:中,3:低,但它看起來像是過度殺傷。
任何更簡單的方法將不勝感激!
傑森
我想在下拉菜單中顯示優先級信息。目前我正在使用整數字段來存儲優先級,但我想顯示高/中/低,而不是讓用戶輸入優先級。如何在django admin中顯示固定的下拉菜單?
一種近似的方法是使用優先級數據庫,該數據庫存儲3個元素,1:高,2:中,3:低,但它看起來像是過度殺傷。
任何更簡單的方法將不勝感激!
傑森
您可以指定字段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)
您應該能夠選擇添加到模型元素
所以:
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在DB,但目前高,中,低。具有選項屬性的管理員默認字段爲下拉選擇器
你可以寫你的模型是這樣的:
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
你已經混淆了價值/文本的順序,它應該是例如。 (PRIORITY_LOW,'低') – 2010-06-17 17:49:18
非常感謝您的解決方案!儘管我需要的順序是錯誤的,例如。 '低'和PRIORITY_LOW需要交換,以在下拉菜單中打印出低點 – FurtiveFelon 2010-06-17 17:52:22
是的,你是對的,我已經混淆了數值。我用正確的值更新了它們。 – 2010-06-17 18:10:50
我想說分配priorites爲整數,而不是字符使得可能更有道理的,因爲您可以通過查詢集中的優先級更輕鬆地排序對象(如果需要的話)。 – 2010-06-17 17:41:48
當然,有很多方法可以修改和改進,如果你想。 – mcpeterson 2010-06-17 17:45:13