Nasıl Django model sayısal bir alanın maksimum değeri sınırlamak için?
Django çeşitli sayısal alanlar modelleri vardır, *örneğin 8* PositiveIntegerField. Eski ondalık saklı sayısı ve karakter toplam sayısı sınırlı olmasına rağmen, depolamak için sınırlamak için herhangi bir yolu yoktursadecebelirli bir aralıktaki sayıları, örneğin 0.0-5.0 ?
Bu olmadığı takdirde, örneğin, sadece numaraları için bir PositiveİntegerField 50 sınırlamak için herhangi bir yolu var mı?
Hata 6845 has been closed, Bu StackOverflow gereksiz bir soru olabilir. güncelleme: - sampablokuper
CEVAP
Ayrıca özel model alan bir tür - http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#howto-custom-model-fields bakın oluşturabilirsiniz
Bu durumda, sen-ebil 'miras' dan dahili ve doğrulama mantığını İntegerField geçersiz kılar.
Daha fazla bu konuda sanırım, bu ne kadar faydalı birçok Django uygulamaları için olacağının farkındayım. Belki İntegerRangeField bir tür Django geliştiriciler dalına eklemeyi düşünün için bir yama olarak sunulmamıştır.
Bu benim için çalışıyor:
from django.db import models
class IntegerRangeField(models.IntegerField):
def __init__(self, verbose_name=None, name=None, min_value=None, max_value=None, **kwargs):
self.min_value, self.max_value = min_value, max_value
models.IntegerField.__init__(self, verbose_name, name, **kwargs)
def formfield(self, **kwargs):
defaults = {'min_value': self.min_value, 'max_value':self.max_value}
defaults.update(kwargs)
return super(IntegerRangeField, self).formfield(**defaults)
Model sınıfında, bu alana yukarıdaki kodu nereye koyduğunuzu modülü) gibi kullanırsınız:
size = fields.IntegerRangeField(min_value=1, max_value=50)
YA da olumsuz bir dizi için ve olumlu (osilatör aralığı gibi):
size = fields.IntegerRangeField(min_value=-100, max_value=100)
Gerçekten harika olur eğer böyle işletmecinin ile denilebilir.
size = fields.IntegerRangeField(range(1, 50))
Ama, bu bir 'atla' parametre aralığı(1, 50, 2) - İlginç bir fikir olsa da... . belirleyebilirsiniz beri çok daha fazla kod gerektirir
Model alan Güney kullanarak yeniden ad...
nasıl sadece sayısal değeri ayarlamak ...
Nasıl Django model bir örneği seri hal...
Nasıl sayısal değeri (Java) için bir b...
nasıl ArrayList Liste/maksimum değeri ...