Django                
            Odniesienie do pola modelu
        
        
            
    Szukaj…
Parametry
| Parametr | Detale | 
|---|---|
| zero | Jeśli true, puste wartości mogą być przechowywane w bazie danych jako null | 
| pusty | Jeśli to prawda, to pole nie będzie wymagane w formularzach. Jeśli pola pozostaną puste, Django użyje domyślnej wartości pola. | 
| wybory | Iterowalna 2-elementowa iteracja, która ma być używana jako wybór dla tego pola. Jeśli ustawione, pole jest renderowane jako administrator w menu rozwijanym. [('m', 'Male'),('f','Female'),('z','Prefer Not to Disclose')]. Aby pogrupować opcje, po prostu zagnieżdż wartości:[('Video Source',((1,'YouTube'),(2,'Facebook')),('Audio Source',((3, 'Soundcloud'),(4, 'Spotify'))] | 
| db_column | Domyślnie django używa nazwy pola dla kolumny bazy danych. Użyj tego, aby podać niestandardową nazwę | 
| db_index | W przypadku wartości Truew tym polu w bazie danych zostanie utworzony indeks | 
| db_tablespace | Obszar tabel używany dla indeksu tego pola. To pole jest używane tylko wtedy, gdy silnik bazy danych je obsługuje, w przeciwnym razie zostanie zignorowane . | 
| domyślna | Wartość domyślna dla tego pola. Może być wartością lub obiektem na żądanie. W przypadku zmiennych domyślnych (lista, zestaw, słownik) należy użyć funkcji wywoływania. Ze względu na zgodność z migracjami nie można używać lambd. | 
| edytowalne | Jeśli ma wartość False, pole nie jest pokazywane w modelu administracyjnym ani żadnymModelForm. Domyślna wartość toTrue. | 
| komunikaty o błędach | Służy do dostosowywania domyślnych komunikatów o błędach wyświetlanych dla tego pola. Wartością jest słownik, w którym klucze reprezentują błąd, a wartością jest komunikat. Domyślne przyciski (komunikaty o błędach) jest null,blank,invalid,invalid_choice,uniqueiunique_for_date; dodatkowe komunikaty o błędach mogą być zdefiniowane przez pola niestandardowe. | 
| Tekst pomocy | Tekst wyświetlany z polem, aby pomóc użytkownikom. HTML jest dozwolony. | 
| on_delete | Po usunięciu obiektu, do którego odwołuje się ForeignKey, Django będzie emulować zachowanie ograniczenia SQL określonego przez argument on_delete. Jest to drugi argument pozycyjny dla pól ForeignKeyiOneToOneField. Inne pola nie mają tego argumentu. | 
| klucz podstawowy | Jeśli True, to pole będzie kluczem podstawowym. Django automatycznie dodaje klucz podstawowy; jest to wymagane tylko wtedy, gdy chcesz utworzyć niestandardowy klucz podstawowy. Możesz mieć tylko jeden klucz podstawowy na model. | 
| wyjątkowy | Jeśli ma wartość True, błędy są zgłaszane, jeśli dla tego pola zostaną wprowadzone zduplikowane wartości. Jest to ograniczenie na poziomie bazy danych, a nie tylko blok interfejsu użytkownika. | 
| unikatowa_data | Ustaw wartość na DateFieldlubDateTimeField, a błędy będą zgłaszane, jeśli będą zduplikowane wartości dla tej samej daty lub godziny . | 
| Unique_for_month | Podobnie jak w przypadku unique_for_date, z tym że czeki są ograniczone w danym miesiącu. | 
| niepowtarzalny_do_roku | Podobnie jak w przypadku unique_for_date, z tym że czeki są ograniczone do roku. | 
| pełna nazwa | Przyjazna nazwa pola, używana przez django w różnych miejscach (np. Tworzenie etykiet w formularzach administratora i modelu). | 
| walidatory | Lista walidatorów dla tego pola. | 
Uwagi
- Możesz napisać własne pola, jeśli uznasz to za konieczne
-  Możesz zastąpić funkcje klasy modelu podstawowego, najczęściej funkcję save()
Pola liczbowe
Podano przykłady pól numerycznych:
AutoField
Automatycznie zwiększająca się liczba całkowita stosowana zwykle do kluczy podstawowych.
from django.db import models
class MyModel(models.Model):
    pk = models.AutoField()
Każdy model domyślnie otrzymuje pole klucza podstawowego (zwane
id). Dlatego nie jest konieczne duplikowanie pola identyfikatora w modelu dla celów klucza podstawowego.
BigIntegerField
 Liczbą całkowitą dopasowanie liczby od -9223372036854775808 do 9223372036854775807 ( 8 Bytes ). 
from django.db import models
class MyModel(models.Model):
    number_of_seconds = models.BigIntegerField()
IntegerField
 Pole IntegerField służy do przechowywania wartości całkowitych od -2147483648 do 2147483647 ( 4 Bytes ). 
from django.db import models
class Food(models.Model):
    name = models.CharField(max_length=255)
    calorie = models.IntegerField(default=0)
parametr
defaultnie jest obowiązkowy. Ale warto ustawić wartość domyślną.
PositiveIntegerField
 Podobnie jak IntegerField, ale musi być dodatni lub zerowy (0). PositiveIntegerField służy do przechowywania wartości całkowitych od 0 do 2147483647 ( 4 Bytes ). Może to być przydatne w polu, które powinno być semantycznie dodatnie. Na przykład, jeśli rejestrujesz żywność z jej kaloriami, nie powinna być ujemna. To pole zapobiegnie ujemnym wartościom poprzez swoje walidacje. 
from django.db import models
class Food(models.Model):
    name = models.CharField(max_length=255)
    calorie = models.PositiveIntegerField(default=0)
parametr
defaultnie jest obowiązkowy. Ale warto ustawić wartość domyślną.
SmallIntegerField
 SmallIntegerField służy do przechowywania wartości całkowitych od -32768 do 32767 ( 2 Bytes ). To pole jest przydatne, gdy wartości nie są skrajnościami. 
from django.db import models
class Place(models.Model):
    name = models.CharField(max_length=255)
    temperature = models.SmallIntegerField(null=True)
PositiveSmallIntegerField
 SmallIntegerField służy do przechowywania wartości całkowitych od 0 do 32767 ( 2 Bytes ). Podobnie jak SmallIntegerField, to pole jest przydatne w przypadku wartości, które nie są tak wysokie i powinny być semantycznie dodatnie. Na przykład może przechowywać wiek, który nie może być ujemny. 
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)
Oprócz PositiveSmallIntegerField jest przydatny do wyboru, jest to sposób implementacji Enum w 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
    )
    ...
Dobrym sposobem na ich wykorzystanie jest zdefiniowanie wyborów jako zmiennych klas lub zmiennych modułów w zależności od sytuacji. Jeśli opcje zostaną przekazane do pola bez przyjaznych nazw, spowoduje to zamieszanie.
DecimalField
Liczba dziesiętna o stałej precyzji, reprezentowana w Pythonie przez instancję dziesiętną. W przeciwieństwie do IntegerField i jego pochodnych, w tym polu znajdują się 2 wymagane argumenty:
- DecimalField.max_digits : Maksymalna dozwolona liczba cyfr w liczbie. Zauważ, że liczba ta musi być większa lub równa dziesiętnym.
- DecimalField.decimal_places : liczba miejsc dziesiętnych do przechowywania wraz z liczbą.
 Jeśli chcesz przechowywać liczby do 99 z 3 miejscami po przecinku, musisz użyć max_digits=5 i decimal_places=3 : 
class Place(models.Model):
    name = models.CharField(max_length=255)
    atmospheric_pressure = models.DecimalField(max_digits=5, decimal_places=3)
BinaryField
Jest to wyspecjalizowana dziedzina służąca do przechowywania danych binarnych. Akceptuje tylko bajty . Dane są serializowane base64 podczas przechowywania.
Ponieważ są to dane binarne, tego pola nie można użyć w filtrze.
from django.db import models
class MyModel(models.Model):
    my_binary_data = models.BinaryField()
CharField
CharField służy do przechowywania określonych długości tekstu. W poniższym przykładzie w polu można zapisać do 128 znaków tekstu. Wprowadzenie dłuższego ciągu spowoduje zgłoszenie błędu sprawdzania poprawności.
from django.db import models
class MyModel(models.Model):
    name = models.CharField(max_length=128, blank=True)
DateTimeField
DateTimeField służy do przechowywania wartości daty i godziny.
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 ma dwa opcjonalne parametry: 
- auto_now_addustawia wartość pola na bieżącą- auto_now_addkiedy obiekt jest tworzony.
- auto_nowustawia wartość pola na bieżącą datę za każdym razem, gdy pole jest zapisywane.
 Te opcje i parametr default wykluczają się wzajemnie. 
ForeignKey
 Pole ForeignKey służy do tworzenia relacji „ many-to-one między modelami. Nie tak, jak większość innych pól wymaga argumentów pozycyjnych. Poniższy przykład pokazuje relację samochodu i właściciela: 
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)
 Pierwszym argumentem pola jest klasa, z którą powiązany jest model. Drugi argument pozycyjny to argument on_delete . W bieżących wersjach ten argument nie jest wymagany, ale będzie wymagany w Django 2.0. Domyślna funkcjonalność argumentu jest pokazana następująco: 
class Car(model.Model)
    owner = models.ForeignKey('Person', on_delete=models.CASCADE)
    ...
Spowoduje to usunięcie obiektów Car z modelu, gdy jego właściciel usunie z modelu Person. To jest domyślna funkcjonalność.
class Car(model.Model)
    owner = models.ForeignKey('Person', on_delete=models.PROTECT)
    ...
Zapobiegnie to usunięciu obiektów Person, jeśli są one powiązane z co najmniej jednym obiektem Car. Wszystkie obiekty Car, które odwołują się do obiektu Person, należy najpierw usunąć. Następnie obiekt osoby można usunąć.