- Field ismini rezerve edilmiş python kelimesi olamaz.
- Field ismi birden fazla alt çizgi ("_") işareti barındıramaz.
- Database sütün tipi (örn: INTEGER, VARCHAR, INT...)
- Django yönetici panelinin kullandığı her hangi bir widget (örn: )
- Django yönetici panelinin minimal doğruluk gereklilikleri.
AutoField
Sayısal bir alan olup veri tabanındaki kayıtların artmasıyla otomatik olarak arttırılır. Büyük ihtimalle doğrudan kullanmanız gerekmeyecek; aksini belirtmediğiniz taktirde modelinize bir "primary key field" zaten ekleniyor. (:S Bu kısmı benden daha iyi anlayan biri varsa lütfen yorum olarak eklesin bilgilerini)
BooleanField
Doğru/Yanlış (True/False) bilgisi tutar.
CharField
Karakter katarı tutar çok uzun bir metin tutulacaksa bunun yerine TextField kullanılmalıdır.
Charfield fazladan bir parametreye ihtiyaç duyar : maxlength, bu alanınızın en fazla kaç karakterlik veriyi tutabileceğini ifade eder.
CommaSeparatedIntegerField
Virgülle ayrılmış sayıların tutulduğu bir alandır. Charfield gibi maxlength argümanına ihtiyaç duyar.
DateField
Tarih tutmak için kullanılan bir alandır. İki adet seçimlik argümanı vardır. Bunlar :
- auto_now
- Otomatik olarak kayıt edilme tarihini tutar. save() komutunu verdiğinizde tarih ne ise alanınız o tarih ile otomatik olarak kaydedilecektir.
- auto_now_add
- Otomatik olarak nesnenin ilk yaratıldığı tarihi tutar.
DateTimeField:
Tarih ve saat bilgisini tutar. DateField la aynı seçimlik argümanları kullanır.
EmailField
Email adresi tutmak için kullanılır. Email adresinin doğru olup olmadığı otomatik olarak kontrol edilir. maxlength argümanını kabul etmez en fazla uzunluk 75 karakter olarak sabitlenmiştir.
FileField
Bir dosya upload alanıdır. Sadece bir gerekli argümana sahiptir.
- upload_to:
- Yerel dosya sistemi yolu olup config dosyanızdaki MEDIA_ROOT yolu ile birleştirilip kullanılacaktır.
Bu yol strftime içerebilir. Örneğin MEDIA_ROOT dizininz /home/media olarak ayarlanmış olsun. upload_to parametresini "photos/%Y/%m/%d" olarak verirseniz. Django buradaki zaman damgalarını upload edilme tarihinden bakarak doldurur. (Örneğin %Y yıl'ın 4 basamaklı hali ile değiştirilir)
FileField ve ImageField alanlarını kullanmak için
- Ayarlar dosyanızda MEDOA_ROOT dizini Django'nun upload edilen dosyaları nereye koyacağını belirler. Buraya tam yolu yazın.
- Modelinize FileField veya ImageField ekleyin, upload_to argümanının dosyaların MEDIA_ROOT altında hangi alt dizine gideceğini belirlediğini unutmayın.
- Dosyanız kayıt edilden sonra Django size get_
_url fonksiyon sunar. Örneğin ImageField kayıdınızın adı profile_picture ise template dosyanızda {{ object.get_profile_picture_url }} şeklinde url'li kullanabilirsiniz.
Eğer dosyanın disk üzerindeki yerini, dosya boyutunu vs. öğrenmek isterseniz get_FIELD_filename(), get_FIELD_size() gibi fonksiyonları kullanabilirsiniz ayrıntılı bilgi için Djangobook'un Appendix C bölümüne bakın.
FilePathField
Seçimleri dosya sistemiz üzerindeki dosyalarla sınırlı olan bir alandır. Üç özel argümana sahiptir.
- path
- Gerekli, sistemdeki her hangi bir klasörü gösteren tam yol.
- match
- Seçimlik, bahsi geçen klasör içerisinde hangi dosyaları seçeceğini gösteren düzenli ifade.
- recursive:
- Seçimlik, True ise match ifadesi alt dizinlerde de aranır. False olarak öntanımlanmıştır.
Örnek: FilePathField(path="/home/texts", match="*.txt", recursive=True)
FloatField
Kayar noktalı sayı başka bir değişle ondalıklı sayı tutmak için kullanılır. Python'daki karşılığı float veri tipidir. İki adet argüman kullanır.
- max_digits
- Sayının en fazla sahip olabileceği basamak sayısı.
- decimal_places
- Sayının ondalıklı kısmının kaç basamaklı olacağını belirler.
ImageField
FileField ile aynıdır fakat upload edilen nesnenin doğru bir imaj olup olmadığını kontrol eder. Bunun yanında height_field ve width_field adında iki fazladan argümana sahiptir. Bu argümanlar imaj kaydedilirken otomatik olarak üretilip kaydedilirler. Bunun yanında FileField metodları (get_FIELD_*) burada da geçerli olup bunlara ek olarak get_FIELD_width() ve get_FIELD_height() metodları da ek olarak bulunmaktadır.
IntegerField
Tamsayı tutar.
IpAdressField
Bir ip adresini karakter katarı olarak tutar (örn: "127.0.0.1")
NullBooleanField
BooleanField gibir fakat bunun yanına bir adet de None değeri eklenmiştir. True/False/None değerlerini tutabilir.
PhoneNumberField
Özelleştirilmiş bir CharField tipidir fakat ek olarak girilen metnin U.S. tipi telefon numarası biçimlemesine uyup uymadığına bakar (XXX-XXX-XXXX)
Not: Başka bir ülkenin telefon numarasını kontrol etmek isterseniz django.contrib.localflavor pakedine bir göz atın.
PositiveIntegerField
IntegerField ile aynıdır fakat sadece pozitif tamsayıları tutar.
PositiveSmallIntegerField
PositiveIntegerField gibidir fakat belirli bir sayıya kadar izin verir. Maksimum değer kullandığınız veri tabanın SMALLINT veri tipinin pozitif olarak ulaşabildiği kullanabildiği maksimum (Genellikle 65535) değerdir.
SlugField
Slug ingilizce bir gazetecilik terimidir. Her hangi bir şey için kısa bir etiket olabilir. Sadece harf,sayı ve alt çizgi karakteri içerebilir. Genelde URLler tarafından kullanılır. Örneğin bir bloglarda görmüşsünüzdür "Hırsızlar Nerede?" başlığı ile kaydettiğiniz yazı url'de "hirsizlar-nerede" şeklinde gözükür. İşte başlığın çeşidine slug diyoruz. (bu kısım hakkında benden daha fazla bilgisi olan lütfen yorum olarak eklesin.)
CharField da olduğu gibi maxlength parametresi alabilir eğer almadıysa öntanımlı maxlenth parametresi 50 karakterdir.
Slugfield prepopulate_from adında fazladan bir seçeneğe sahiptir. Bu slug metninin, nesnenizin django admin panelindeki hangi alan(lar)ının birleşiminden otomatik olarak oluşturulacağını belirler. kullanımı models.SlugField(prepopulate_fpom=("pre_name", "name")) gibidir.
SmallIntegerField
PositiveSmallIntegerField'ın aynısıdır fakat buradaki sayı işaretlidir. Genellikle -32,768 ile +32,767 arasındaki sayıları ifade edebilir.
TextField
Sınırsız metin alanıdır.
TimeField
Günün saatini barındırabilen bir alandır. DateField ve DateTimeField'ın sahip olduğu otomatik oluşturma seçeneklerini bu da barındırır.
UrlField
Bir url tutmak için kullanılır. Eğer verify_exists argümanı True olarak geçirilirse adresin doğruluğu kontrol edilir (kontrol adrese ping atmak vasıtası ile gerçekleştirilir).
XmlField
TextField ile aynıdır fakat xml tutmak için kullanılır. Xml söz dizimini kontrol eder. Söz diziminin doğruluğunu kontrol etmek için RELAX NG şemasının yerini dosya yolu olarak vermeniz gerekmektedir.
Hiç yorum yok:
Yorum Gönder