Skip to content

Field types

Proyektdagi istalgan bir ma'lumot, masalan mahsulotlar to'g'risidagi ma'lumotlarning jadval ko'rinishi:

idnominarxitavsifi
1olma10000Shirin
2koptok250000Charmdan qilingan
3neksiya125000000Tezkor

Bu jadval asosida djangoda model tuzishdan oldin har bir ustunda qanday turdagi ma'lumotlar saqlanishiga aniqlik kiritib olishimiz kerak.

Masalan nomi nomli ustunda str toifasidagi ma'lumotlar saqlanishini va uzunligi ko'pi bilan 50ta belgidan iborat bo'lishini istasak, u holda

python
from django.db import models

class Mahsulot(models.Model):
    nomi = models.CharField(max_length=50)
    ...
from django.db import models

class Mahsulot(models.Model):
    nomi = models.CharField(max_length=50)
    ...

TIP

CharField orqali ro'yxatdan o'tkazilgan fieldlarga faqat str toifasidagi ma'lumotlarni kiritish mumkin.

max_length atributi orqali esa biz uzunligi ko'pi bilan nechta belgidan iborat matn kiritish mumkinligini belgilaymiz.

narxi nomli ustunga to'xtaladigan bo'lsak, bu fieldga faqat int toifasidagi ma'lumotlarni kiritish mumkin deb belgilasak, eng to'g'ri yechim bo'ladi. Buning uchun djangodagi IntegerField to'g'ri keladi.

python
from django.db import models

class Mahsulot(models.Model):
    nomi = models.CharField(max_length=50)
    narxi = models.IntegerField()
    ...
from django.db import models

class Mahsulot(models.Model):
    nomi = models.CharField(max_length=50)
    narxi = models.IntegerField()
    ...

TIP

IntegerField orqali ro'yxatdan o'tkazilgan fieldlarga faqat int toifasidagi ma'lumotlarni kiritish mumkin.

tavsifi nomli ustunda str toifasidagi ma'lumotlar saqlansada, katta hajmdagi matn kiritilishini hisobga olib, djangodagi TextFielddan foydalanishi maqsadga muvofiq bo'ladi.

python
from django.db import models

class Mahsulot(models.Model):
    nomi = models.CharField(max_length=50)
    narxi = models.IntegerField()
    tavsifi = models.TextField()
from django.db import models

class Mahsulot(models.Model):
    nomi = models.CharField(max_length=50)
    narxi = models.IntegerField()
    tavsifi = models.TextField()

TIP

TextField orqali ro'yxatdan o'tkazilgan fieldlarga faqat str toifasidagi ma'lumotlarni kiritish mumkin bo'lib, CharFielddan farqli ravishda katta hajmdagi matnlarni kiritish uchun foydalaniladi.

Yuqorida faqat CharField, IntegerField, TextField ko'rib chiqildi. Ular haqida batafsil ma'lumot olish va boshqa field turlari bilan tanishish uchun bu yerga bosing.