Set Django seçimler=... adıyla İntegerField
Seçimler bir seçenek ile örnek bir alan varsa biraz büyü değerleri insan okunabilir isimleri ile ilişkili eğilimindedir. Django değeri yerine insanlar tarafından okunabilir adını bu alanları belirlemek için uygun bir yol var mı?
Bu modeli göz önünde bulundurun:
class Thing(models.Model):
PRIORITIES = (
(0, 'Low'),
(1, 'Normal'),
(2, 'High'),
)
priority = models.IntegerField(default=0, choices=PRIORITIES)
Bir noktada Şeyin bir örneği var ve önceliğini ayarlamak istiyoruz. Yapabileceğin açıkçası
thing.priority = 1
Ama öncelik Değeri-Adı eşleme ezberlemek için zorlar. Bu çalışmıyor:
thing.priority = 'Normal' # Throws ValueError on .save()
Şu anda bu saçma bir çözüm var:
thing.priority = dict((key,value) for (value,key) in Thing.PRIORITIES)['Normal']
ama bu iyi değil. Nasıl ortak bu senaryo olabilir verilirse herkes daha iyi bir çözüm vardı merak ettim. Ben tamamen göz ardı eden seçim alan adı ayarı için bazı alan yöntem var mı?
CEVAP
seen here yap. O zaman uygun bir tamsayı temsil eden bir kelime kullanabilirsiniz.
Bunun gibi
LOW = 0
NORMAL = 1
HIGH = 2
STATUS_CHOICES = (
(LOW, 'Low'),
(NORMAL, 'Normal'),
(HIGH, 'High'),
)
O zaman hala DB tamsayılar.
Kullanım thing.priority = Thing.NORMAL
olurdu
Django nasıl bir ModelForm içinde Fore...
'Django alanları s model olsun...
django bir db olmadan birim testleri...
Neden yok't django'in modeli...
PostgreSQL vs MySQL? Hangi Django proj...