Django
मॉडल फ़ील्ड संदर्भ
खोज…
पैरामीटर
पैरामीटर | विवरण |
---|---|
शून्य | यदि सही है, तो रिक्त मान डेटाबेस में null रूप में संग्रहीत किया जा सकता है |
रिक्त | यदि सही है, तो फ़ील्ड को रूपों में आवश्यक नहीं होगा। यदि फ़ील्ड खाली छोड़ दिए जाते हैं, तो Django डिफ़ॉल्ट फ़ील्ड मान का उपयोग करेगा। |
विकल्प | इस क्षेत्र के लिए विकल्प के रूप में उपयोग किए जाने वाले 2-तत्व पुनरावृत्तियों का एक पुनरावृत्ति। यदि सेट किया गया है, तो फ़ील्ड को व्यवस्थापक में ड्रॉप-डाउन के रूप में प्रदान किया जाता है। [('m', 'Male'),('f','Female'),('z','Prefer Not to Disclose')] । समूह विकल्पों के लिए, बस मूल्यों को घोंसले में बांधें: [('Video Source',((1,'YouTube'),(2,'Facebook')),('Audio Source',((3, 'Soundcloud'),(4, 'Spotify'))] |
db_column | डिफ़ॉल्ट रूप से, django डेटाबेस कॉलम के लिए फ़ील्ड नाम का उपयोग करता है। कस्टम नाम प्रदान करने के लिए इसका उपयोग करें |
db_index | यदि True , तो डेटाबेस में इस क्षेत्र पर एक इंडेक्स बनाया जाएगा |
db_tablespace | इस क्षेत्र के सूचकांक के लिए उपयोग करने के लिए टेबलस्पेस। इस फ़ील्ड का उपयोग केवल तभी किया जाता है जब डेटाबेस इंजन इसका समर्थन करता है, अन्यथा इसकी अनदेखी की जाती है । |
चूक | इस फ़ील्ड के लिए डिफ़ॉल्ट मान। एक मान, या एक कॉल करने योग्य वस्तु हो सकती है। परिवर्तनशील चूक (एक सूची, एक सेट, एक शब्दकोश) के लिए आपको एक कॉल करने योग्य का उपयोग करना चाहिए । माइग्रेशन के साथ संगतता के कारण, आप लैम्ब्डा का उपयोग नहीं कर सकते। |
संपादन योग्य | यदि False , तो फ़ील्ड को मॉडल व्यवस्थापक या किसी भी ModelForm में नहीं दिखाया गया है। डिफ़ॉल्ट True । |
त्रुटि संदेश | इस क्षेत्र के लिए दिखाए गए डिफ़ॉल्ट त्रुटि संदेशों को अनुकूलित करने के लिए उपयोग किया जाता है। मान एक शब्दकोश है, जिसमें त्रुटियों का प्रतिनिधित्व करने वाले कुंजी हैं और संदेश का मूल्य है। (त्रुटि संदेश के लिए) डिफ़ॉल्ट चाबियाँ हैं null , blank , invalid , invalid_choice , unique और unique_for_date ; अतिरिक्त त्रुटि संदेशों को कस्टम फ़ील्ड द्वारा परिभाषित किया जा सकता है। |
मदद पाठ | उपयोगकर्ताओं की सहायता के लिए फ़ील्ड के साथ प्रदर्शित होने वाला पाठ। HTML की अनुमति है। |
on_delete | जब किसी फॉरेनके द्वारा संदर्भित ऑब्जेक्ट को हटा दिया जाता है, तो Django on_delete तर्क द्वारा निर्दिष्ट SQL बाधा के व्यवहार का अनुकरण करेगा। यह दोनों के लिए दूसरा स्थितीय तर्क है ForeignKey और OneToOneField क्षेत्रों। अन्य क्षेत्रों में यह तर्क नहीं है। |
प्राथमिक कुंजी | यदि True , तो यह फ़ील्ड प्राथमिक कुंजी होगी। Django स्वचालित रूप से एक प्राथमिक कुंजी जोड़ता है; इसलिए यह आवश्यक है यदि आप एक कस्टम प्राथमिक कुंजी बनाना चाहते हैं। आपके पास प्रति मॉडल केवल एक प्राथमिक कुंजी हो सकती है। |
अद्वितीय | यदि True , तो इस फ़ील्ड के लिए डुप्लिकेट मान दर्ज किए जाने पर त्रुटियाँ उत्पन्न होती हैं। यह एक डेटाबेस-स्तर प्रतिबंध है, और केवल एक उपयोगकर्ता-इंटरफ़ेस ब्लॉक नहीं है। |
unique_for_date | किसी दिनांक या दिनांक समय के लिए डुप्लिकेट मान हैं, तो एक DateField या DateTimeField लिए मान सेट करें, और त्रुटियों को उठाया जाएगा। |
unique_for_month | unique_for_date समान, सिवाय चेक महीने के लिए सीमित हैं। |
unique_for_year | unique_for_date समान, सिवाय चेक के वर्ष तक सीमित हैं। |
verbose_name | फ़ील्ड के लिए एक दोस्ताना नाम, जिसका उपयोग विभिन्न स्थानों में django द्वारा किया जाता है (जैसे कि व्यवस्थापक और मॉडल रूपों में लेबल बनाना)। |
प्रमाणकों | इस क्षेत्र के सत्यापनकर्ताओं की सूची। |
टिप्पणियों
- यदि आपको आवश्यक लगे तो आप अपने स्वयं के क्षेत्र लिख सकते हैं
- आप बेस मॉडल वर्ग के कार्यों को ओवरराइड कर सकते हैं, आमतौर पर
save()
फ़ंक्शन
नंबर फील्ड्स
संख्यात्मक क्षेत्रों के उदाहरण दिए गए हैं:
AutoField
एक ऑटो-इंक्रीमेंटिंग पूर्णांक आमतौर पर प्राथमिक कुंजी के लिए उपयोग किया जाता है।
from django.db import models
class MyModel(models.Model):
pk = models.AutoField()
प्रत्येक मॉडल को डिफ़ॉल्ट रूप से एक प्राथमिक कुंजी फ़ील्ड (
id
कहा जाता है) मिलता है। इसलिए, प्राथमिक कुंजी के प्रयोजनों के लिए मॉडल में आईडी फ़ील्ड को डुप्लिकेट करना आवश्यक नहीं है।
BigIntegerField
एक पूर्णांक फिटिंग संख्या -9223372036854775808
से 9223372036854775807
( 8 Bytes
9223372036854775807
)।
from django.db import models
class MyModel(models.Model):
number_of_seconds = models.BigIntegerField()
IntegerField
IntegerField का उपयोग पूर्णांक मानों को -2147483648 से 2147483647 ( 4 Bytes
) तक संग्रहीत करने के लिए किया जाता है।
from django.db import models
class Food(models.Model):
name = models.CharField(max_length=255)
calorie = models.IntegerField(default=0)
default
पैरामीटर अनिवार्य नहीं है। लेकिन डिफ़ॉल्ट मान सेट करना उपयोगी है।
PositiveIntegerField
एक IntegerField की तरह, लेकिन या तो सकारात्मक होना चाहिए या शून्य (0)। PositiveIntegerField का उपयोग पूर्णांक मानों को 0 से 2147483647 ( 4 Bytes
) तक संग्रहीत करने के लिए किया जाता है। यह उस क्षेत्र में उपयोगी हो सकता है जो शब्दार्थात्मक रूप से सकारात्मक होना चाहिए। उदाहरण के लिए यदि आप इसकी कैलोरी के साथ खाद्य पदार्थ रिकॉर्ड कर रहे हैं, तो यह नकारात्मक नहीं होना चाहिए। यह क्षेत्र अपनी मान्यताओं के माध्यम से नकारात्मक मूल्यों को रोकेगा।
from django.db import models
class Food(models.Model):
name = models.CharField(max_length=255)
calorie = models.PositiveIntegerField(default=0)
default
पैरामीटर अनिवार्य नहीं है। लेकिन डिफ़ॉल्ट मान सेट करना उपयोगी है।
SmallIntegerField
SmallIntegerField पूर्णांक मान -32768 से 32767 ( 2 Bytes
) को संग्रहीत करने के लिए उपयोग किया जाता है। यह क्षेत्र उन मूल्यों के लिए उपयोगी है जो चरम नहीं हैं।
from django.db import models
class Place(models.Model):
name = models.CharField(max_length=255)
temperature = models.SmallIntegerField(null=True)
PositiveSmallIntegerField
SmallIntegerField का उपयोग पूर्णांक मानों को 0to 32767 ( 2 Bytes
) से संग्रहीत करने के लिए किया जाता है। SmallIntegerField की तरह ही यह क्षेत्र उन मूल्यों के लिए उपयोगी है जो इतने अधिक नहीं हैं और शब्दार्थात्मक रूप से सकारात्मक होना चाहिए। उदाहरण के लिए यह उम्र को संग्रहीत कर सकता है जो नकारात्मक नहीं हो सकता।
from django.db import models
class Staff(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
age = models.PositiveSmallIntegerField(null=True)
पॉजिटिवस्मॉलइंटरफ़िल्ड के अलावा विकल्पों के लिए उपयोगी है, यह Enum को लागू करने का Djangoic तरीका है:
from django.db import models
from django.utils.translation import gettext as _
APPLICATION_NEW = 1
APPLICATION_RECEIVED = 2
APPLICATION_APPROVED = 3
APPLICATION_REJECTED = 4
APLICATION_CHOICES = (
(APPLICATION_NEW, _('New')),
(APPLICATION_RECEIVED, _('Received')),
(APPLICATION_APPROVED, _('Approved')),
(APPLICATION_REJECTED, _('Rejected')),
)
class JobApplication(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
status = models.PositiveSmallIntegerField(
choices=APLICATION_CHOICES,
default=APPLICATION_NEW
)
...
स्थिति के अनुसार वर्ग चर या मॉड्यूल चर के रूप में विकल्पों की परिभाषा उनका उपयोग करने का एक अच्छा तरीका है। यदि विकल्प मैत्रीपूर्ण नामों के बिना क्षेत्र में पारित किए जाते हैं तो यह भ्रम पैदा करेगा।
DecimalField
एक निश्चित-सटीक दशमलव संख्या, पायथन में एक दशमलव उदाहरण द्वारा दर्शाई गई है। IntegerField और इसके डेरिवेटिव के विपरीत इस क्षेत्र में 2 आवश्यक तर्क हैं:
- DecimalField.max_digits : अंकों की अधिकतम संख्या की अनुमति। ध्यान दें कि यह संख्या दशमलव_प्लस से अधिक या उसके बराबर होनी चाहिए।
- DecimalField.decimal_places : संख्या के साथ संग्रह करने के लिए दशमलव स्थानों की संख्या।
यदि आप 3 दशमलव स्थानों के साथ 99 तक की संख्याएँ संग्रहीत करना चाहते हैं, तो आपको max_digits=5
और decimal_places=3
उपयोग करने की आवश्यकता है:
class Place(models.Model):
name = models.CharField(max_length=255)
atmospheric_pressure = models.DecimalField(max_digits=5, decimal_places=3)
BinaryField
यह एक विशेष क्षेत्र है, जिसका उपयोग बाइनरी डेटा को संग्रहीत करने के लिए किया जाता है। यह केवल बाइट्स को स्वीकार करता है। भंडारण पर डेटा बेस 64 अनुक्रमित है।
चूंकि यह बाइनरी डेटा संग्रहीत कर रहा है, इसलिए इस फ़ील्ड का उपयोग फ़िल्टर में नहीं किया जा सकता है।
from django.db import models
class MyModel(models.Model):
my_binary_data = models.BinaryField()
CharField
CharField का उपयोग पाठ की निर्धारित लंबाई को संग्रहीत करने के लिए किया जाता है। नीचे दिए गए उदाहरण में पाठ के 128 अक्षर क्षेत्र में संग्रहीत किए जा सकते हैं। इससे अधिक लंबी स्ट्रिंग दर्ज करने पर सत्यापन त्रुटि उत्पन्न हो जाएगी।
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=128, blank=True)
DateTimeField
DateTimeField का उपयोग दिनांक समय मानों को संग्रहीत करने के लिए किया जाता है।
class MyModel(models.Model):
start_time = models.DateFimeField(null=True, blank=True)
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
एक DateTimeField
के दो वैकल्पिक पैरामीटर हैं:
जब ऑब्जेक्ट बनाया जाता है, तो
auto_now_add
फ़ील्ड का मान वर्तमानauto_now_add
सेट करता है।हर बार फ़ील्ड के सहेजने के बाद, स्वतः ही फ़ील्ड को वर्तमान
auto_now
में फ़ील्ड का मान सेट करता है।
ये विकल्प और default
पैरामीटर परस्पर अनन्य हैं।
विदेशी कुंजी
फॉरेनके फील्ड का उपयोग मॉडल के बीच many-to-one
संबंध बनाने के लिए किया जाता है। अन्य क्षेत्रों के अधिकांश की तरह स्थितिगत तर्कों की आवश्यकता नहीं है। निम्नलिखित उदाहरण कार और मालिक के संबंध को प्रदर्शित करता है:
from django.db import models
class Person(models.Model):
GENDER_FEMALE = 'F'
GENDER_MALE = 'M'
GENDER_CHOICES = (
(GENDER_FEMALE, 'Female'),
(GENDER_MALE, 'Male'),
)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
age = models.SmallIntegerField()
class Car(model.Model)
owner = models.ForeignKey('Person')
plate = models.CharField(max_length=15)
brand = models.CharField(max_length=50)
model = models.CharField(max_length=50)
color = models.CharField(max_length=50)
क्षेत्र का पहला तर्क वह वर्ग है जिससे मॉडल संबंधित है। दूसरा स्थितीय तर्क on_delete
तर्क है। वर्तमान संस्करणों में इस तर्क की आवश्यकता नहीं है, लेकिन यह Django 2.0 में आवश्यक होगा। तर्क की डिफ़ॉल्ट कार्यक्षमता निम्नानुसार दिखाई गई है:
class Car(model.Model)
owner = models.ForeignKey('Person', on_delete=models.CASCADE)
...
इससे कार की वस्तुओं को मॉडल से हटा दिया जाएगा जब उसके मालिक को पर्सन मॉडल से हटा दिया जाएगा। यह डिफ़ॉल्ट कार्यक्षमता है।
class Car(model.Model)
owner = models.ForeignKey('Person', on_delete=models.PROTECT)
...
यह कम से कम एक कार ऑब्जेक्ट से संबंधित होने पर व्यक्ति की वस्तुओं को हटाने से रोकता है। कार ऑब्जेक्ट के सभी जो एक व्यक्ति ऑब्जेक्ट को संदर्भित करते हैं, को पहले हटा दिया जाना चाहिए। और फिर व्यक्ति वस्तु को हटाया जा सकता है।